HTML-Link - richtige Syntax

  • Hallo,

    die richtige Syntax für einen Link ist:
    <a href="http://www.xyz.de" target="_blank">xxx</a>

    Ich habe festgestellt und leider auch in unzähligen Fällen angewandt, daß auch diese Form funktioniert (ohne Anfürungszeichen und Unterstrich):
    <a href=http://www.xyz.de target=blank>xxx</a>

    Meine Frage: zeugt diese Darstellung nur von Schlampigkeit oder kann es zu Problemen bei Benutzung geben?

    Falls eine Richtigstellung notwendig wäre, könnte Suchen/Ersetzen in dieser Form angewandt werden?:

    Suchen: <a href=*> Ersetzen: <a href="*"> und anschließend
    Suchen: target=* Ersetzen: " target ="_*
    (in Text-Spalten in phpMyAdmin)

  • Korrekt ist der erste Link und deshalb sollte man das auch so schreiben. Egal, ob es funktioniert oder nicht, falsch ist falsch. Spätestens wenn mal Leerzeichen vorkommen, kracht es.

    Ich würde so vorgehen:
    <a href= durch <a href=" ersetzen
    target=_blank durch " target="_blank" ersetzen
    Man achte auf das Leerzeichen vor target, das hier im Forum nicht angezeigt wird

  • Danke für Deine Antwort.

    Beim Ersetzen, wie Du vorschlägst, klappt es, wenn ein target vorhanden ist. Es würde aber ein Anführungszeichen fehlen, falls kein target vorhanden ist.

    Leider habe ich auch Links in der Form:
    <a ID=wiki href=http://wwwxyz.de title=xyz> xyz </a>

    Auch das mit einer Form Suchen/Ersetzen zu lösen scheint mir recht problematisch. Ich wüßte echt nicht wie.

    Über 100 oder mehr Links händisch zu ändern ist aber eine harte Strafe für meine Schlampigkeit.

  • Das Ersetzen wird man bestimmt auch mit regulären Ausdrücken hinbekommen, aber das ist leider überhaupt nicht meine Nummer, da kann ich dir nicht weiterhelfen.

  • Moin Hardy,
    ich würde es so machen..
    in mehreren Durchgängen !

    1. <a ID= mit <a id=" --- ( die Großschreibung auch gleichmal mit ändern )
    2. href= mit href="
    3. .de mit .de"
    4. .html mit .html"
    5. title= mit title="
    7. blank mit "_blank"

    6. Dann nochmal das ganze Document nach href=" durchsuchen lassen
    damit alle Verweise noch einmal angezeigt werden und einen kurzen blick auf jedes machen
    sowie das letzte " von ID und titel per Hand einzusetzen
    sowie noch eventuelle Fehler von Hand zu berichtigen

    das dauert alles zusammen höchstens eine Stunde ca.

    beim nach gucken auf sowas http://lhttp://inden.de/Bilder.html achten
    da würde dann ja nämlich "http://linden.de"/Bilder.html" stehen

    Gruß modem-kind

    na bestimmt hast es eh schon fertig..

  • Zuerst mal muss ich dich korrigieren. <a href="http://www.xyz.de" target="_blank">xxx</a> ist NICHT korrekt, nach den aktuellen Richtlinien. Natürlich darfst du es in der Variante transitional trotzdem verwenden und es funktioniert auch. In der Variante strict darfst du es aber nicht verwenden.

    In der Variante transitional funktioniert sowohl target="blank" als auch target="_blank" fehlerfrei. Aber sie bewirken nicht das gleiche! Mit target="_blank" wird das Ziel in einem neuen Fenster angezeigt. Mit target="blank" wird das Ziel in einem Fenster namens "blank" angezeigt. Wenn es so ein Fenster nicht gibt, wird eben eins erzeugt. Wenn du also in einer Seite mehrere Links mit target="_blank" einbaust und sie der Reihe nach anklickst, wird jeder Link ein neues Fenster öffnen. Wenn du eine Seite mit mehreren Links mit target="blank" erzeugst und sie der Reihe nach anklickst, wird beim ersten Link ein Fenster namens "blank" mit der Zielseite angelegt. Jeder weitere angeklickte Link ersetzten dann den Inhalt dieses Fensters.

    Ich würde dir eine andere Vorgehensweise vorschlagen. Alles was zwischen "<" und ">" steht, gehört zu Tags. Darin ist alles, was nach einem "=" steht, ein Attribut. Ich würde also innerhalb der Zeichenketten zwischen "<" und ">" nach "=" suchen und wenn das nächste Zeichen, das kein Whitespace ist, kein Anführungszeichen ist, würde ich eins einfügen lassen. Und dann würde ich nach allen Whitespace suchen, die nach einem Leerzeichen mit folgenden Anführungszeichen zwischen"<" und ">" kommen und manuell prüfen, ob da das schließende Anführungszeichen hin kommt. Normalerweise ist das beim ersten Whitespace nach dem Anführungszeichen der Fall, aber nicht wenn es um ein Attribut mit mehreren Werten geht. Das kann z.b. bei style, class und andern der Falls sein.