Wenn wir einen Link in einem neuen Fenster öffnen möchten, fügen wir normalerweise target="_blank" nach dem Link hinzu. Es gibt kein Problem, wenn wir den Übergangs-DOCTYPE (xh tml1-transitional. dtd) verwenden, aber wenn wir Wenn Sie den strikten DOCTYPE (xhtml1-strict.dtd) verwenden, schlägt diese Methode bei der W3C-Überprüfung fehl und die folgende Fehlermeldung wird angezeigt:
„Für dieses Element gibt es kein Attributziel (in dieser HTML-Version)“
Es stellt sich heraus, dass unter dem strengen DOCTYPE von HTML4.01/XHTML1.0/XHTML1.1 die Syntaxen target="_blank", target="_self" und andere 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 vor allem 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.
rel-Attribut
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:
<a href="document.html" target="_blank">Neues Fenster öffnen</a>
Jetzt wird es so geschrieben:
<a href="document.html" rel="external">Neues Fenster öffnen</a>
Dies ist eine strenge Methode. Natürlich muss es mit einem Javascript kombiniert werden, um wirksam zu sein.
Der vollständige Code JS von Javascript lautet wie folgt:
Funktion externallinks() {
if (!document.getElementsByTagName) return;
var Anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var Anker = Anker[i];
if (anchor.getAttribute("href") &&
Anchor.getAttribute("rel") == "external")
Anchor.target = "_blank";
}
}
window.onload = externallinks;
Sie können es als .js-Datei (z. B. external.js) speichern und über die externe Verbindungsmethode aufrufen:
<script type="text/javascript" src="external.js"></script>
Das ist es.
Abschließend möchte ich hinzufügen, dass das von meiner Website verwendete target="new" unter dem Übergangs-DOCTYPE zulässig ist, aber nicht dem strengen Standard entspricht. Ich werde in der nächsten Überarbeitung den strikten Modus verwenden und alle target="new" in rel="external" ändern.