Frage an internet-explorer-8 – target = _blank funktioniert nicht in IE8 und führt IEs nebeneinander aus (ich führe das IEs-Paket über VirtualBox aus)

1

IE8 verhindert manchmal das Laichen von Links, wenn target = _blank gesetzt ist.

Dieses Problem scheint auf beschädigte IE-Installationen beschränkt zu sein, z. B. wenn mehrere Versionen nebeneinander installiert werden.

Ich habe diese Frage bearbeitet, sobald ich die Antwort gefunden habe. Hoffentlich spart dies jemand anderem etwas Zeit. Die Antwort ist in den Kommentaren der ersten Antwort aufgeführt.

Es könnte hilfreich sein, die Frage neu zu formulieren, um anzuzeigen, dass dies ein Problem ist, wenn versucht wird, den IE nebeneinander auszuführen. EricLaw
Gute Idee, ich habe es geändert. Andrew Johnson
Was für eine riesige Sammlung von falschen Antworten ... Noch beunruhigender ist, dass die XHTML 1.1-Kids der Meinung sind, dass das Anheften von _target = blank durch Javascript ein gültiger Hack ist. Wenn ein Browser XHTML 1.1 implementiert hatnur Sie würden erwarten, dass dies nicht funktioniert. Evan Carroll

Deine Antwort

5   die antwort
0

Ich weiß, dass dies bereits beantwortet wurde, aber ich wollte nur etwas über die Live-Bindungsfunktionalität von jQuery erzählen:

$("a.myclass").live("click",function() {
    $(this).attr("target","_blank");
});

In diesem Beispiel wird das Attribut 'target = "_ blank" auf einen Link mit der Klasse "myclass" festgelegt, auch auf einen Link, der mit Javascript erstellt wurde.

-1

Was ist, wenn Sie verwendentarget='blank' ? Ich weiß, dass es nicht DAS Gleiche ist, aber Sie werden das Popup / Fenster in einer neuen Instanz öffnen und Ihre Site könnte für den strengen XHTML-Modus validieren :)

Entschuldigung, ich habe ein Zitat verlegt. Es sollte target = 'blank' sein Andrea
Das funktioniert bei mir nicht. Andrew Johnson
Für den Datensatz ist es nicht das '_blank', das in XHTML 1.0 oder 1.1 strict nicht zulässig ist, sondern das target-Attribut für Anker- oder Linkelemente. Es wurde (absichtlich) aus der DTD herausgelassen. Wenn Sie target = 'blank' verwenden, das für Sie als XHTML 1.0 oder 1.1 Strict validiert wurde, war dies ein Fehler des Validators. Das heißt, die meisten Browser akzeptieren es immer noch und verarbeiten es, gültig oder nicht. Gabriel Hurley
Funktioniert immer noch nicht :( Andrew Johnson
-2

Dies liegt daran, dass target = "_ blank" im strengen XHTML-Modus nicht gültig ist. Sehen:

http://www.8164.org/xhtml-strict/

Das Folgende sollte in allen Fällen funktionieren.

<script>window.open("http://www.80vul.com/test/ie8-1.htm");</script>

Ich gehe davon aus, dass ab IE8 Beta 1 der Standardmodus STRICT anstelle von TRANSITIONAL ist.

Ja, leider ist dies einer der Gründe, warum wir die "Side-by-Side" -Hacks nicht empfehlen. VPC ist heute die einzige unterstützte Möglichkeit, nebeneinander zu arbeiten. Danke für das Update! EricLaw
Dies funktioniert bei mir nicht, obwohl ich in meinem Dokument den IE7-Modus wie folgt erzwinge: <meta http-equiv = "X-UA-kompatibel" content = "IE = EmulateIE7" /> Andrew Johnson
"Klasse nicht registriert" beim Öffnen neuer Fenster bedeutet, dass Ihre IE8-Installation beschädigt ist. EricLaw
Ich erhalte im IE den Fehler "Klasse nicht registriert". Andrew Johnson
3

Dies hängt davon ab, welchen eigenständigen IE8 Sie verwenden. Ich habe festgestellt, dass dies ein Problem ist, wenn ich "Final Builds Site - Internet Explorer Collection" verwende (http://finalbuilds.edskes.net/iecollection.htm) Version 1.6.0.3. Der Entwickler hat jetzt diesen Fehler ab Ver behoben. 1.6.0.4 und Links mit target = "_ blank" funktionieren jetzt wie erwartet.

-1

Ja, der strenge XHTML-Modus akzeptiert nicht target = "_ blank".

Wenn Sie window.open nicht überall weiter verwenden möchten, können Sie mit JQuery rel = "external" und ein zusätzliches Javascript wie das folgende verwenden:

$(document).ready(function() {
    $("a[rel='external']").attr("target","_blank");
});

BEARBEITEN: So legen Sie alle generierten Links fest:

 $("a[rel='external']").ready(function() { 
    $("a[rel='external']").attr("target","_blank");
 });

Oder, ohne jQuery, können Sie das Skript verwenden,hier gefunden:

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;
Nun, dies sollte eine Website für die Zusammenarbeit sein, keine "Gib mir eine Lösung, die sofort funktioniert" -Seite. João Marcus
Daher meine fortgesetzte Zusammenarbeit. Andrew Johnson
Das geht nicht. Zuallererst werden die Links mit Javascript erstellt, und als solche gibt es keine Onload. Ich habe versucht, a.rel und a.target zu setzen, aber das funktioniert nicht. Andrew Johnson
Ihre Zusammenarbeit besteht aus "Das funktioniert nicht". Sie sollten Leute nicht herunterschalten, weil die Lösung "nicht funktioniert". Es funktioniert einfach nicht genau so, wie Sie es möchten. João Marcus

Verwandte Fragen