Dieser Artikel bezieht sich auf die folgenden Artikel:
Der übliche Weg, einen Link in einem neuen Fenster zu öffnen, besteht darin, target="_blank" nach dem Link hinzuzufügen. Es gibt kein Problem, wenn wir den Übergangs-DOCTYPE (xh tml1-transitional. dtd) verwenden, aber wenn wir den verwenden strict DOCTYPE (xhtml1-strict.dtd), diese Methode schlägt bei der W3C-Überprüfung fehl und die folgende Fehlermeldung wird angezeigt:
"Es gibt kein Attribut Ziel für dieses Element (in dieser HTML-Version)"
Es stellt sich heraus, dass unter dem strengen DOCTYPE von HTML4.01/XHTML1.0/XHTML1.1 target="_blank", target="_self" und andere Syntaxen ungültig sind und wir sie nur über JavaScript implementieren können.
Ein Freund fragte, warum target="_blank" nicht verwendet werden darf? Dieses Attribut ist sehr praktisch. Haha, ich weiß nicht, was die W3C-Experten denken. Soweit ich weiß, geht es hauptsächlich um „Benutzerfreundlichkeit und Freundlichkeit“, weil Ausländer es für unhöflich halten, ein neues Fenster ohne Zustimmung des Benutzers oder klare Aufforderungen zu öffnen. von. Unabhängig davon, ob diese Stornierung sinnvoll ist oder nicht, schauen wir uns die Lösung an.
HTML4.0 fügt ein neues Attribut hinzu: rel. Dieses Attribut wird verwendet, um die Beziehung zwischen dem Link und der Seite, die den Link enthält, sowie dem Ziel des Links zu beschreiben. rel hat viele Attributwerte, wie z. B. „nächster“, „vorheriger“, „Kapitel“, „Abschnitt“ usw. Was wir verwenden möchten, ist das Attribut rel="externa l". Der ursprüngliche Code wurde wie folgt geschrieben:
Neues Fenster öffnenJetzt schreiben Sie es so:
Neues Fenster öffnenDies ist eine Methode, die dem strengen Standard entspricht. Natürlich muss es mit einem Javascript kombiniert werden, um wirksam zu sein.
Der vollständige Code JS lautet wie folgt:
function externallinks() { if (!document.getElementsByTagName) return; var anchors = document.getElementsByTagName("a"); for (var i=0; i<anchors.length; i++) { var anchor = anchors[i]; if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") anchor.target = "_blank"; } } window.onload = externallinks;
Sie können es als .js-Datei speichern (z. B. external.js) und es dann über die externe Verbindungsmethode aufrufen:
Das ist es.
Schließlich ist das von meiner Website verwendete target="new" unter dem Übergangs-DOCTYPE zulässig, entspricht jedoch nicht dem strengen Standard. Ich werde in der nächsten Überarbeitung den strikten Modus verwenden und alle target="new" in rel="external" ändern.