3

Ich möchte es wirklich nicht tun, ich möchte den neuesten Browser ausrichten. Es scheint ein bisschen nach hinten zu gehen, um einen Legacy-Browser zu targetieren und dann IE8 zu zwingen, in einem Kompatibilitätsmodus zu laufen. Ich frage mich, was passieren würde, wenn IE9 herauskam?Was könnten die Auswirkungen sein, die mit der Ausrichtung auf IE7 verbunden sind, und die Verwendung des Tags, der IE8 in den IE7-Modus einer neuen Webanwendung zwingt?

Aber JQuery und CSS haben beide Probleme, die in IE8 richtig laufen, es funktioniert gut in IE7 und Firefox und ich glaube sogar Chrome. Ich möchte, dass dieses Ding zumindest in IE7, IE8 und FF gut läuft. Gibt es einen besseren Weg oder sollte ich nur dieses Tag für IE8 verwenden?

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

Was könnten die Risiken dafür sein? Ich fühle mich einfach nicht richtig, aber ich habe keine fundierten Beweise, um meine Ängste zu stützen. Mein Bauchgefühl ist, dass es Probleme auf der Straße verursacht und ein Potenzial für viele Nacharbeiten schafft. Gedanken?

UPDATE: Hier ist das eigentliche Problem selbst ...

if (dir == "back" || dir == "jump") { 
    $.get(prevNode.attr("href") + "&bID=" + bID + "&ieRefresh=" + Math.random(), "", 
      function(data) { 
      p.nav.prevHtml = data; 
    }); 
} 

Der Fehler ist:

Objekt nicht diese Eigenschaft oder Methode Linie 390 nicht unterstützt, Zeichen 37 (das Zeichen, Durch diese 'Koordinaten' wird das Dollarzeichen des $ .get()) gefunden.

+0

Welche Abschnitte Ihrer jQuery und CSS sind in IE8 gebrochen? Ich persönlich fand es viel schwieriger, IE7 wie FF/IE8 arbeiten zu lassen. – jwiscarson

+0

@jwiscarson siehe Update – BigOmega

+0

Ist das PrevNode href Attribut leer oder so? Ich kann mir nicht vorstellen, warum dies in IE8 nicht richtig funktionieren würde - Ich benutze $ .get in meinen Projekten und habe keine Probleme damit und mit IE8. Haben Sie versucht, dies durch .load für den Fall zu ersetzen? – jwiscarson

Antwort

3
  • Schauen Sie sich Ihren Code an.
  • Schau, wo du es falsch machst.
  • Korrigieren Sie Ihren Code.
  • Watch it

Ideal ist Ihre gesamte Website kompatibel mit IE8 tun wollen, was Sie in IE8 funktioniert. IE7 selbst ist weitgehend kompatibel mit FF & Chrome-Standards und erfordert eine Menge Hacking.

Es wird wesentlich einfacher für Sie, die Konformität von IE8 zu IE9 zu aktualisieren, weil IE9 nicht mit IE6/7-Code gut umgehen wird.

jQuery funktioniert ordnungsgemäß in IE8. Ich kann nicht fanthom, was CSS in IE7 & FF funktioniert (Sprechen FF3.6 richtig? Nicht FF 1.5?), Aber nicht in IE8 funktioniert. Dies ist ein klares Zeichen dafür, dass Ihr Setup etwas falsch macht.

+0

hinzugefügt Update mit dem tatsächlichen Code in Frage – BigOmega

1

Es ist überraschend, dass jQuery "nicht ordnungsgemäß" in IE8 ausgeführt wird. Es gibt definitiv Unterschiede in CSS zwischen 7 und 8, aber was genau machst du in jQuery, die nicht in 8 funktioniert?

Auch ist die Verwendung von IE bedingten Anweisungen keine Option?

heißt
<!--[if IE 8]> 
Special instructions for IE 8 here 
<![endif]--> 

UPDATE:

Manchmal das $ -Zeichen verwendet, kann zu Problemen führen, je nachdem, was Sie sonst noch auf haben würde. Wird mit "jQuery" anstelle von "$" etwas gemacht? Ich habe Ihren Code in IE8 ausprobiert und keine Fehler bekommen ....

+0

Idealerweise vermeiden IE Bedingungen für Feature-Erkennung. Ich kann ergründen, dass IE-Bedingungen für IE6/quirksmode Unterstützung notwendig sein können, aber IE8 sollte sich wirklich gut genug verhalten, damit Feature-Erkennung funktioniert. – Raynos

+0

siehe Update über – BigOmega

+0

True. Aber abhängig von der Komplexität dessen, was er tut, könnten IE-Bedingungen ihm kurzfristig helfen, während er herausfindet, was sonst noch falsch ist. – esvendsen

0

IE8 und IE9 beide enthalten die IE7-Rendering-Engine (oder etwas sehr nah), ist es besser, IE in einen Modus zu zwingen, den Sie wissen, funktioniert als etwas kaputt zu lassen.

Dennoch, für die beste Vorwärts-Kompatibilität sollten Sie Ihre Website untersuchen und korrigieren, um ordnungsgemäß in IE8 oder mindestens IE9 zu arbeiten. IE8 ist nicht perfekt, aber wenn Sie keine Browsererkennung durchführen, sollten sich jQuery und CSS 2.1 beide sehr gut verhalten. Das IE-Team hat einen schönen Blogbeitrag über die Verwendung von feature detection rather than browser sniffing (was wahrscheinlich das Problem hier ist).