ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
1013
1013
EMPFEHLEN
-
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
-
HTML Strict ist halt sehr fehleranfällig... Schreib doch lieber in Transitional... (http://selfhtml.teamone.de/html/allg...undgeruest.htm)
Aber zu deinem Problem:
Der Validator hat recht... Ich seh kein target-Attribut...Code :1
<a href="http://www.geileKarre.de/clublinks/?referer_id=xxxx">
So is richtig...Code :1
<a href="http://www.geileKarre.de/clublinks/?referer_id=xxxx" target="_blank">
Mit p und align: HTML Strict kennt solche Attribute nicht mehr... Kannst statt dessen style="text-align:center" benutzenGeä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.
-
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
-
19.01.04 17:14 #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:Direkt am Anfang der DTD steht auch, was das generell für einen Sinn hat, gewisse Attribute wegzulassen: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 -- >
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.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.
Ansonsten gibt's eben wirklich noch das 4.01 Transitional oder Loose.
Peter
-
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
-
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.
-
Du meinst, jedes Template einbinden und mit Beispiel-Daten füllen? Klingt nicht schlecht, die Idee.
-
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
Wie immer ungetestet...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, $erg, strlen[$erg]);
fclose($file);
}
// 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 x = -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
-
Richtige Syntax bei Operatorüberladung, wann sind "friend", "const", "&" nötig?
Von mrs_schokokeks im Forum C/C++Antworten: 4Letzter Beitrag: 25.08.10, 19:13 -
XSLT: sowohl value-of select "element" als auch "element" selbst ausgeben
Von RalU im Forum XML TechnologienAntworten: 5Letzter Beitrag: 18.01.10, 02:21 -
Links in iFrames IMMER "global" laden? (Wie bei target="_top")
Von HAL im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 25.06.08, 14:17 -
"Prozess.Exited" - aber kein Focus zum "SynchronizingObject"
Von Christian Kusmanow im Forum .NET ArchivAntworten: 3Letzter Beitrag: 21.10.04, 16:12 -
Make hat kein "Target"
Von Java/CppProgrammer im Forum Linux & UnixAntworten: 2Letzter Beitrag: 19.10.04, 09:31





Login




