tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
1013
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
DIESES THEMA IST
GESCHLOSSEN
  1. #1
    Registriert seit
    Apr 2003
    Ort
    Scheeßel
    Beiträge
    359
    Hi Leute,

    ich bin gerade dabei, meine Website Schritt für Schritt durch einen HTML-Validator der W3C zu jagen. Das merkwürdige ist, daß mir der Validator mit DOCTYPE HTML 4.01 Strict anzeigt, daß das Element "a" kein Attribut "target" besitzt... was ist denn das für ein Humbug? Natürlich besitzt das Element "a" das Attribut "target"... wie sollte man sonst Sites hinter Hyperlinks in neuen Fenstern anzeigen lassen (außer per Javascript)?

    Ich habe einen Hyperlink (habe mehrere, aber bei diesem einen fällt es auf) auf meiner Seite, der auf eine externe Seite verweist (Banner-Exchange). Dieser Hyperlink besitzt im Code das Attribut "target", damit die externe Seite in einem neuen Browserfenster angezeigt wird. Soweit klar, oder?! Nun will ich die Seite mit diesem Hyperlink validieren lassen von der W3C bzw. ihrem Validator. Der meckert nun aber rum, wie oben beschrieben. Was ist daran falsch?

    Was ähnliches meckert er im Element "p" an, daß das Element kein Attribut "align" kennt... genau so'n Blödsinn. Was mache ich flasch? Falscher DOCTYPE?

    Code :
    1
    2
    3
    4
    5
    
    <p align="center">
    <a href="http://www.geileKarre.de/clublinks/?referer_id=xxxx">
    <img style="border: 0;" alt="banner" src="http://www.geilekarre.de/images_banner/clublinks_81x31.gif" width=81 height=31>
    </a>
    </p>


    Danke!

    Gruß, Hendrik
     

  2. #2
    Registriert seit
    Jan 2003
    Beiträge
    448
    HTML Strict ist halt sehr fehleranfällig... Schreib doch lieber in Transitional... (http://selfhtml.teamone.de/html/allg...undgeruest.htm)
    Aber zu deinem Problem:
    Code :
    1
    
    <a href="http://www.geileKarre.de/clublinks/?referer_id=xxxx">
    Der Validator hat recht... Ich seh kein target-Attribut...
    Code :
    1
    
    <a href="http://www.geileKarre.de/clublinks/?referer_id=xxxx" target="_blank">
    So is richtig...

    Mit p und align: HTML Strict kennt solche Attribute nicht mehr... Kannst statt dessen style="text-align:center" benutzen
    Geändert von Gottox (19.01.04 um 13:13 Uhr)
     
    Ich gebe keine Garantie darauf, dass meine Skripte funktionieren. Das, was ich in Foren poste, ist oft ungetestet. Trotzdem versuche ich nach bestem Wissen zu programmieren und zu erklären.

  3. #3
    Registriert seit
    Apr 2003
    Ort
    Scheeßel
    Beiträge
    359
    Nee, er meckert den anderen an... sorry, ich meinte den da:

    Code :
    1
    
    <a href="http://click.listinus.de/topsite.php?id=xxxxx" target="_blank">

    den da meckert er an. Sorry. Mein Fehler. In der Zeile zeigt er das Attribut "target" als Fehler an. Aber okay, ich werd das mal mit "transitional" versuchen.

    Danke!

    Gruß, Hendrik
     

  4. #4
    Registriert seit
    Apr 2002
    Ort
    Viersen
    Beiträge
    302
    Brauchst dir nur mal die DTD's anschauen. Da wirst du feststellen, dass das target Attribut in der Strict DTD wirklich nicht enthalten ist, sondern nur in Transitional und Loose.

    Entsprechender Auszug der HTML 4.01 Strict DTD:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    <!--================== The Anchor Element ================================-->
     
    <!ENTITY % Shape "(rect|circle|poly|default)">
    <!ENTITY % Coords "CDATA" -- comma-separated list of lengths -->
     
    <!ELEMENT A - - (%inline;)* -(A)       -- anchor -->
    <!ATTLIST A
      %attrs;                              -- %coreattrs, %i18n, %events --
      charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
      type        %ContentType;  #IMPLIED  -- advisory content type --
      name        CDATA          #IMPLIED  -- named link end --
      href        %URI;          #IMPLIED  -- URI for linked resource --
      hreflang    %LanguageCode; #IMPLIED  -- language code --
      rel         %LinkTypes;    #IMPLIED  -- forward link types --
      rev         %LinkTypes;    #IMPLIED  -- reverse link types --
      accesskey   %Character;    #IMPLIED  -- accessibility key character --
      shape       %Shape;        rect      -- for use with client-side image maps --
      coords      %Coords;       #IMPLIED  -- for use with client-side image maps --
      tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
      onfocus     %Script;       #IMPLIED  -- the element got the focus --
      onblur      %Script;       #IMPLIED  -- the element lost the focus --
      >
    Direkt am Anfang der DTD steht auch, was das generell für einen Sinn hat, gewisse Attribute wegzulassen:
    Code :
    1
    2
    3
    4
    5
    
        This is HTML 4.01 Strict DTD, which excludes the presentation 
        attributes and elements that W3C expects to phase out as 
        support for style sheets matures. Authors should use the Strict
        DTD when possible, but may use the Transitional DTD when support
        for presentation attribute and elements is required.
    In dem konkreten Fall heißt das, dass das target Attribut einfach nicht mehr erwünscht ist, da es schlichtweg nicht der Strukturierung eines Dokumentes dient, sondern in Verbindung mit einem Frameset dessen Präsentation. In XHTML ist es schon komplett verbannt. Einzelne Frames sollten beim Benutzen einer Strict DTD per JavaScript addressiert werden. Das ist zwar nicht schön, aber das sind Frames auch nicht.

    Ansonsten gibt's eben wirklich noch das 4.01 Transitional oder Loose.

    Peter
     

  5. #5
    Registriert seit
    Apr 2003
    Ort
    Scheeßel
    Beiträge
    359
    Ich nutze auch keine Frames auf meiner Seite, hätte aber eben gern, daß die Seite, die sich hinter dem besagten Link verbirgt, in einem neuen Fenster angezeigt wird. Hmm... wegrationalisiert. Okay, dann eben Transitional. Ist ja kein Problem.

    Sagt mal, gibt es eigentlich ein schnelleres Verfahren, eine auf PHP und MySQL basierende dynamische Website zu validieren, als jede mögliche Seite einzeln zu validieren? Ich mein, ich hab jetzt die Startseite validiert. Dann müsste ich mich durch sämtliche Menüverästelungen hangeln und jede Seite einzeln validieren. Geht das nicht auch einfacher und schneller?

    Danke!


    Gruß, Hendrik
     

  6. #6
    Registriert seit
    Jan 2003
    Beiträge
    448
    Klar... Schreib dir ein Script dafür...
     
    Ich gebe keine Garantie darauf, dass meine Skripte funktionieren. Das, was ich in Foren poste, ist oft ungetestet. Trotzdem versuche ich nach bestem Wissen zu programmieren und zu erklären.

  7. #7
    Registriert seit
    Apr 2003
    Ort
    Scheeßel
    Beiträge
    359
    Du meinst, jedes Template einbinden und mit Beispiel-Daten füllen? Klingt nicht schlecht, die Idee.
     

  8. #8
    Registriert seit
    Jan 2003
    Beiträge
    448
    Jo... Oder du schreibst alle Seiten die du Prüfen willst in einen Array und jagst sie nacheinander durch den W3C Validator. Die Ergebnissseiten kannst du ja dann speichern...

    Sowas in PHP
    PHP-Code:
    $url "http://www.ich-kenn-den-link.net/validator?url="
    $valid[] = 'url1';
    $valid[] = 'url2';
    $valid[] = 'url3';
    $x = -1;
    while(
    $valid[++$x])
    {
    $erg file($url $valid[$x]);
    $file fopen('test'.$x.'.html','w');
    fwrite($file$ergstrlen[$erg]);
    fclose($file);

    Wie immer ungetestet...

    // Nachtrag:

    Mir war grad ein bisschen Langweilig...
    PHP-Code:
    <script language="javascript">
    var 
    url "http://www.ich-kenn-den-link.net/validator?url="
    valid = new Array('url','url','url','url');
    var 
    = -1;
    while(
    valid[++x])
    {
    document.write('<iframe src="'+url+valid[x]+'" width="100%"></iframe>')
    }
    </script> 
    Geändert von Gottox (20.01.04 um 14:31 Uhr)
     
    Ich gebe keine Garantie darauf, dass meine Skripte funktionieren. Das, was ich in Foren poste, ist oft ungetestet. Trotzdem versuche ich nach bestem Wissen zu programmieren und zu erklären.

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 25.08.10, 19:13
  2. Antworten: 5
    Letzter Beitrag: 18.01.10, 02:21
  3. Antworten: 2
    Letzter Beitrag: 25.06.08, 14:17
  4. "Prozess.Exited" - aber kein Focus zum "SynchronizingObject"
    Von Christian Kusmanow im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 21.10.04, 16:12
  5. Make hat kein "Target"
    Von Java/CppProgrammer im Forum Linux & Unix
    Antworten: 2
    Letzter Beitrag: 19.10.04, 09:31