2012-09-28 11 views
25

Ich habe eine Seite, die auf einer Seite, wo sie mit dem folgenden Befehl in einem Iframe enthalten sein wird: Der Versuch, IE = Kante X-UA-Compatible auf einer Seite in einem Iframe zu verwenden, mit IE = EmulateIE7

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/> 

und im Idealfall möchte ich meine Seite mit dem neuesten Standardmodus für den Browser, den der Benutzer verwendet, verwenden. Ist das möglich?

Ich habe versucht, einschließlich

<meta http-equiv="X-UA-Compatible" content="IE=edge"/> 

auf meiner Seite, aber auch zu verändern meine Webapp die 'X-UA-Compatible' HTTP-Header mit dem Wert von 'IE = Kante' zu schließen, aber ich kann Ich glaube nicht, dass es das macht, was ich will.

Das Seltsame ist, ist, dass, wenn zum Beispiel habe ich zwei Seiten, die ersten, die iframe enthält, und das andere, was in der iframe angezeigt ist, etwa so:

<!doctype html> 
<html> 
<head> 
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/> 
    <script> 
     console.log("Page document mode: "+document.documentMode); 
    </script> 
</head> 
<body> 
<iframe src="iframepage.html" /> 
</body> 
</html> 

und

<!doctype html> 
<html> 
<head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <script> 
     console.log("Iframe document mode: "+document.documentMode); 
    </script> 
</head> 
<body> 
</body> 
</html> 

der Ausgang ist der eher unerwarteten

Page document mode: 7 
Iframe document mode: 8 

Wenn der Dokumentenmodus 8 kommen aus ist? Und wie mache ich das Iframe-Dokument in 9 oder höher?

Ich wäre ewig dankbar, wenn mir jemand in die richtige Richtung zeigen kann !! danke, Nick

+1

Ich habe genau das gleiche Problem. Hast du eine Lösung gefunden? –

+0

Leider habe ich keine Angst – eldoctoro

+0

Nur Vermutungen, aber ein paar Dinge zu versuchen wäre 1) Einstellung IE = 9 statt Rand, und/oder 2) mit der X-UA-kompatiblen HTTP-Header, anstatt der Meta-Tag –

Antwort

21

IE erlaubt nicht Mischen von IE9 + und älteren Modi in einer Rahmenhierarchie. Wenn Ihr oberstes Dokument IE7 ist, ist IE8 das höchste, das Sie in jedem inneren Dokument erhalten können. Genauso wenig könnten Sie IE9-Modus-Dokumente auf einer IE9-Modus-Seite hosten.

+2

Es scheint jedoch, ist es möglich, Modi umgekehrt zu mischen: die Hauptseite im Standardmodus, der Rahmen im Kompatibilitätsmodus: http://StackOverflow.com/q/18976213/1768303 – Noseratio

+0

Es ist wichtig, die Quelle zu Fragen zu berücksichtigen das ist leicht verwirrend wie dieses: http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx – Luke

+2

@Noseratio Ich habe dein Beispiel in deiner anderen Frage angeschaut, und ich glaube an Ihren inneren Rahmen, Sie sehen nicht einen echten IE5 \ Quirks-Modus, sondern etwas namens "Almost Standards Mode", das ist fast das gleiche wie Standards mit Ausnahme der Tabelle Verhalten Sie erwähnen. Weitere Informationen finden Sie hier: http://msdn.microsoft.com/en-us/library/ff405912(v=vs.85).aspx. Es ist großartig, wenn dies für Sie funktioniert, aber andere Dinge als Tabellen funktionieren nicht so, wie Sie es von einem reinen Legacy-Modus erwarten würden. –