etherius Geschrieben 2. Oktober 2005 Teilen Geschrieben 2. Oktober 2005 Moinsen! ich hab mal ne ganz dumme frage ... ich hab ein javascript was ein link ausgibt: var stopticker = '[<a href="javascript:tickertoggle();">Pause<\/a>]'; Problem an der Stelle ist, dass der w3c validator das nicht mehr validiert und fehlermeldungen schmeißt: Error Line 323 column 55: document type does not allow element "a" here. var stopticker = '[<a href="javascript:tickertoggle();">Pause<\/a>]'; The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed). One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error). Hat jemand ne Ahnung wie ich den validierungsfehler beheben kann?!? mfg Eth Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 2. Oktober 2005 Teilen Geschrieben 2. Oktober 2005 Hi Hat jemand ne Ahnung wie ich den validierungsfehler beheben kann?!? normalerweise macht man ja bei CSS und JS einen HTML Kommentar hin. <style type="text/css"> <!-- --> </style> bzw <script type="text/javascript"> <!-- --> </script> Ich vermute, dass es dann geht. Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etherius Geschrieben 2. Oktober 2005 Autor Teilen Geschrieben 2. Oktober 2005 Eben diesen Kommentar verwendet man ja nicht mehr ^^ Es muss noch eine andere Möglichkeit geben. aber trotzdem danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 2. Oktober 2005 Teilen Geschrieben 2. Oktober 2005 Hi, Eben diesen Kommentar verwendet man ja nicht mehr ^^ Das ist mir aber nicht bekannt... Sind die Kommentare im XHTML Standard nicht mehr vorhanden? Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Manitu71 Geschrieben 2. Oktober 2005 Teilen Geschrieben 2. Oktober 2005 poste bitte mal deinen ganzen Code. Ich denke mal das da Markus ned ganz unrecht hat. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mkScheller Geschrieben 3. Oktober 2005 Teilen Geschrieben 3. Oktober 2005 eventuell geht es, wenn du den link in die seite schon einbaust, ihn aber mittels style="visibility: hidden" unsichtbar machst: <a href="javascript:tickertoggle();" style="visibility: hidden" id="link"> und erst dann aktivierst, wenn er erscheinen soll, bspw. wenn alle formularangaben getätigt worden sind: javascript:document.getElementById('link').style.visibility = "visible"; bei mir hat der validator da auch nicht konkret gemeggert Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etherius Geschrieben 3. Oktober 2005 Autor Teilen Geschrieben 3. Oktober 2005 <script type="text/javascript" language="JavaScript" src="./include/ticker.js"></script> <script type="text/javascript" language="JavaScript"> var stopticker = '[<a href="javascript:tickertoggle();">$lang[stopticker]<\\/a>]'; var startticker = '[<a href="javascript:tickertoggle();">$lang[startticker]<\\/a>]'; var delay = $tickerdelay;; var node = ''; var current = 0; var running = false; var contents = new Array(); $contents window.onload = tickerstart; </script> <table align="center" border="0" cellpadding="0" cellspacing="0" width="$tablewidth"> <tr> <td bgcolor="$bordercolor"> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td class="tablerow" colspan="2" width="100%"> <table cellspacing="1" cellpadding="$tablespace" border="0" width="100%"> <tr> <td class="category"><strong><font color="$cattext">$lang[tickername] <span id="tickertoggle"> </span></font></strong> </td> </tr> <tr> <td bgcolor="$altbg2" class="mediumtxt"> <div id="tickerdiv"> <noscript>$noscriptcontents</noscript> </div> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> <br /> Ist prinzipiell ein Ausschnitt aus dem Quelltext vom XMB Board. www.xmbforum.com Achso, einige ganz wichtige Punkte: KEINE inline-styles verwenden, bitte. Und vor allem zumindest versuchen den Kommentar bei JS UND CSS weg zu lassen Danke Eth Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Benzol Geschrieben 3. Oktober 2005 Teilen Geschrieben 3. Oktober 2005 Moin, kenn mich mit dem ganzen JS Zeug's nicht so aus, aber versuche es auch so manchmal auf die Reihe zu kriegen Eins versteh ich hier dran aber nicht. Warum steh bei: var stopticker = '[<a href="javascript:tickertoggle();">$lang[stopticker]<\\/a>]'; var startticker = '[<a href="javascript:tickertoggle();">$lang[startticer]<\\/a>]'; 2 Backslashes in dem abschliessenden a Tag? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 3. Oktober 2005 Teilen Geschrieben 3. Oktober 2005 Hi, Und vor allem zumindest versuchen den Kommentar bei JS UND CSS weg zu lassen Warum?! Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
zirri Geschrieben 4. Oktober 2005 Teilen Geschrieben 4. Oktober 2005 ich frag mich, was die eckigen klammern da machen ?!? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 4. Oktober 2005 Teilen Geschrieben 4. Oktober 2005 ich frag mich, was die eckigen klammern da machen ?!? Die sind wahrscheinlich nur [Verzierung] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etherius Geschrieben 5. Oktober 2005 Autor Teilen Geschrieben 5. Oktober 2005 Moin, kenn mich mit dem ganzen JS Zeug's nicht so aus, aber versuche es auch so manchmal auf die Reihe zu kriegen Eins versteh ich hier dran aber nicht. Warum steh bei: var stopticker = '[<a href="javascript:tickertoggle();">$lang[stopticker]<\\/a>]'; var startticker = '[<a href="javascript:tickertoggle();">$lang[startticer]<\\/a>]'; 2 Backslashes in dem abschliessenden a Tag? Weil der sonst meckert von wegen Sonderzeichen. Ein backslash wird grundsätzlich als Special Character interpretiert. darum muss man den auch noch escapen ^^ Hi, Weil der Programmierstil mit Kommentaren veraltet ist. (Punkt) Kommentare WURDEN verwendet, um älteren Browsern die Möglichkeit zu geben, das javascript/css dezent zu "überlesen". Neue Browser können aber normalerweise javascript und css daher braucht man es auch nicht auskommentieren. Außerdem ändert das kommentieren an meinem Problem nichts. Riiiischtiiiisch. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 5. Oktober 2005 Teilen Geschrieben 5. Oktober 2005 Moin! Also bei mir funktioniert und validiert das einwandfrei: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="de"> <head> <title>jsLink</title> </head> <body> <?php define('stopticker', 'derLink'); $lang = array('derLink' => 'Linktext'); ?> <script type="text/javascript"> var stopticker = '[<a href="javascript:void(0);"><?php echo $lang[stopticker]; ?><\/a>]'; document.write(stopticker); </script> </body> </html> Gruß, Tobias Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etherius Geschrieben 5. Oktober 2005 Autor Teilen Geschrieben 5. Oktober 2005 Dann validiere es doch bitte einmal als XHTML 1.0 Strict Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 6. Oktober 2005 Teilen Geschrieben 6. Oktober 2005 hmmm...seltsam. grundsätzlich stehen mir die Haare zu Berge wenn ich HTML-Tags in Javascript sehe ^^ k.A. seit welcher Version, aber man sollte nicht mehr mit document.write oder so arbeiten, sondern mit JS-DOM. Durchaus möglich das der XHTML standard da sich dann schon querlegt wenn er Tags im JS (script-tag) findet. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etherius Geschrieben 6. Oktober 2005 Autor Teilen Geschrieben 6. Oktober 2005 Hm ich denke ich werd das script da einfach komplett raus hauen Geht mir auf die nerven ^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 6. Oktober 2005 Teilen Geschrieben 6. Oktober 2005 OK, Du hast es nicht anders gewollt! Jetzt wird's kompliziert: Also. XHTML wird vom Internet-Explorer ja bekanntermaßen nicht unterstützt. Deswegen muss man zunächst mal prüfen welcher Browser benutzt wird und welches Doctype, bzw. auch welchen Mimetype man mitschicken muss. Danach muss man beachten, dass man in XHTML kein document.write mehr verwenden darf, man also alles schön im DOM abbilden muss. Heraus kam daher dieses Dokument, welches zu 100% XHTML 1.1, bzw. im IE HTML 4.01 validiert: <?php $charset = 'iso-8859-1'; $mime = 'text/html'; function fix_code($buffer) { return (str_replace(" />", ">", $buffer)); } if (stristr($_SERVER['HTTP_ACCEPT'], 'application/xhtml+xml')) { if (preg_match('/application\/xhtml\+xml;q=0(\.[1-9]+)/i', $_SERVER['HTTP_ACCEPT'], $matches)) { $xhtml_q = $matches[1]; if (preg_match('/text\/html;q=0(\.[1-9]+)/i', $_SERVER['HTTP_ACCEPT'], $matches)) { $html_q = $matches[1]; if ($xhtml_q >= $html_q) { $mime = 'application/xhtml+xml'; } } } else { $mime = 'application/xhtml+xml'; } } if (stristr($_SERVER['HTTP_USER_AGENT'],'W3C_Validator')) { $mime = 'application/xhtml+xml'; } if($mime == 'application/xhtml+xml') { $prolog_type = '<!DOCTYPE html PUBLIC \'-//W3C//DTD XHTML 1.1//EN\' \'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\'> <html xmlns=\'http://www.w3.org/1999/xhtml\' xml:lang=\'en\'>'; } else { ob_start('fix_code'); $prolog_type = '<!DOCTYPE HTML PUBLIC \'-//W3C//DTD HTML 4.01//EN\' \'http://www.w3.org/TR/html4/strict.dtd\'> <html lang=\'en\'>'; } header('Content-Type: '.$mime.';charset='.$charset); header('Vary: Accept'); echo $prolog_type."\n"; ?> <head> <title>jsLink</title> </head> <body> <?php define('stopticker', 'derLink'); $lang = array('derLink' => 'Linktext'); ?> <p id="derAbsatz"> [<script type="text/javascript"> var d = document; if (d.getElementById) { var a = d.createElement('a'); a.href = 'javascript:void(0);'; a.id = 'derLink'; d.getElementById('derAbsatz').appendChild(a); var derText = document.createTextNode('<?php echo $lang[stopticker]; ?>'); a.appendChild(derText); } </script>] </p> </body> </html> [/PHP] :eek Gruß, Tobias Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 6. Oktober 2005 Teilen Geschrieben 6. Oktober 2005 *kopfkratz* das Internetexplorer kein XHTML kann ist mir neu. Ich kenne mehrere Seiten die XHTML validiert sind (Doctype XHTML) und die im IE fehlerfrei funktionieren. einfaches Beispiel: www.tagesschau.de Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 6. Oktober 2005 Teilen Geschrieben 6. Oktober 2005 Hi! Naja, bei XHTML 1.0 strict und XHTML 1.1 ist es vorgeschrieben (bei XHTML 1.0 transitional und frameset wird es empfohlen), dass das Dokument mit dem Mimetype application/xhtml+xml ausgeliefert wird (http://www.w3.org/TR/xhtml-media-types/). Diesen Mimetype kennt der Internet Explorer aber nicht: http://www.google.de/search?hl=de&q=Internet+Explorer+application%2Fxhtml%2Bxml+Unterst%C3%BCtzung&btnG=Google-Suche&meta= Die Auslieferung von XHTML-Dokumenten als html/text kann zu unvorhersehbaren Ergebnissen führen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etherius Geschrieben 6. Oktober 2005 Autor Teilen Geschrieben 6. Oktober 2005 Aufgrund von accessibility Gründen verwenden wir DEFINITIV nur XHTML 1.0 Strict, unter besonderen umständen auch mal Transitional aber definitiv kein HTML 4 oder so ähnlich Ich werd mal schauen wie ich das am sinnvollsten Löse oder ob ich das JS da raus nehm. Bis jetzt hab ich noch keine Probleme mit der XHTML Doctype def gehabt. Schaut es euch an: www.webnauts.net forums.webnauts.net mfg Eth Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 6. Oktober 2005 Teilen Geschrieben 6. Oktober 2005 Aufgrund von accessibility Gründen verwenden wir DEFINITIV nur XHTML 1.0 Strict, unter besonderen umständen auch mal Transitional aber definitiv kein HTML 4 oder so ähnlich ... Welche Fähigkeiten bietet Dir XHTML die HTML 4x nicht hat? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etherius Geschrieben 6. Oktober 2005 Autor Teilen Geschrieben 6. Oktober 2005 Es geht an dieser Stelle nicht direkt um die Vorteile von XHTML gegenüber von HTML 4, sondern eher um die Zukunftsorientierung unserer Webseiten. Im Netz wird immer weniger HTML4, aber immer mehr XHTML benutzt. Daher würde ich (und vor allem mein Kollege John hier *grins*) für zukunftsorientiertes Design grundsätzlich auf XHTML zurückgreifen, auf keinen Fall aber auf HTML 4 (oder noch schlimmer HTML 3 *gröööhl*) mfg Eth Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Webnauts Geschrieben 7. Oktober 2005 Teilen Geschrieben 7. Oktober 2005 The benefits of adopting XHTML or upgrading your existing site to the new standards are many. First of all, they ensure an excellent forward-compatibility for your developed web sites. XHTML is the new set of standards that the web is build today and will be built on in the years coming, so future-proofing your work, you will avoid a lot of trouble later on. Can also be, that future browser versions will stop supporting deprecated elements from old HTML drafts, and so many old basic-HTML sites may begin displaying incorrectly and unpredictably. W3C explains why the need of XHTML here too : http://www.w3.org/TR/xhtml1/#why Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 7. Oktober 2005 Teilen Geschrieben 7. Oktober 2005 Hi! Editiert Ich meine ja nur, der Internet-Explorer kennt halt den Mimetype application/xhtml+xml nicht, XHTML muss aber mit diesem ausgeliefert werden, das ist nun mal so bei diesem Standard, ergo, ist der "höchste" Standard den der IE versteht HTML 4.01. Eine Art das zu erreichen, aber für moderne Browser dennoch nicht auf XHTML verzichten zu müssen, ist mein o.g. Script zu benutzen. Face it! Gruß, Tobias Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 7. Oktober 2005 Teilen Geschrieben 7. Oktober 2005 Wenn jetzt noch weitere Seitenhiebe oder Beleidigungen kommen ist der Thread zu. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.