2008-09-03 12 views
0

Ich habe gerade ein Problem mit LightWindow und IE7 erhalten und umgangen, bei dem beim Laden der Seite ein JavaScript-Fehler in Zeile 444 von lightwindow.js ausgelöst wird dass die object does not support this property or method. Obwohl ich verschiedene Beiträge in verschiedenen Foren gefunden habe, hatte kein Google-Ergebnis eine Lösung, also poste ich das hier in der Hoffnung, dass es mir später weiterhelfen wird.LightWindow & IE7, "Zeile 444 - Objekt unterstützt diese Eigenschaft oder Methode nicht"

Viele haben eine bestimmte Reihenfolge der Skriptdateien vorgeschlagen, aber ich habe diese Reihenfolge bereits verwendet (Prototyp, Scriptaculous, Lightwindow).

Dies sind die Schritte, die ich, dass nahm schließlich schien zu funktionieren, ich schreibe sie hier nur als Aufzeichnung, wie ich weiß nicht, noch Zeit haben, welche zu testen, speziell „fixiert“ die Frage:

  1. Verschoben der Aufruf von lightwindow.js am Ende der Seite.
  2. Changed Leitung 444 an: if (this._getGalleryInfo(link.rel)) {
  3. Changed Leitung 1157 an: if (this._getGalleryInfo(this.element.rel)) {
  4. Schließlich eingeschlossen ich (und das ist schmutzig, meine Entschuldigung) Linien 1417-1474 mit einem try/catch Block, die Ausnahme zu schlucken.

EDIT:

erkannte ich, dass dies Firefox brach. Hinzufügen der folgenden als Linie 445 macht es jetzt funktioniert - try { gallery = this._getGalleryInfo(link.rel); } catch (e) { }

Es ist nicht eine sehr schöne Lösung, aber meine Seite (die eine Lightwindow Link ohne "rel" -Tag enthält, mehrere Lightwindow Links, die "rel" -Tags haben, und ein "Inline" -Link funktioniert jetzt gut in IE7. Bitte kommentieren Sie, wenn Sie etwas zu diesem Problem hinzufügen oder Probleme mit/Verbesserungen an meiner gegebenen Lösung haben.

Antwort

0

Ich reparierte diese durch die Linie 444 Wechsel auf:

var gallery = this._getGalleryInfo(link.rel) 

dann den anschließenden Vergleich Aussage Wechsel zu:

if(gallery.length > 0) 
{ 
    // Rest of code here... 

..., die es in IE6 + sortiert zu haben scheint und hielt es funktioniert in Firefox usw.

Ich habe die Zeile 1157 überhaupt nicht geändert, aber ich habe den Code nicht gelesen, um zu sehen, was ich tatsächlich mache, also kann ich seine Relevanz nicht kommentieren?

Ich vermute das? das im Beispiel verwendete rel-Attribut (Evoution? [man]) könnte das Problem mit IE verursachen, aber ohne einige Zeit damit zu verbringen, ein paar Dinge zu testen, kann ich nicht sicher sein?

HTH.

1

Statt der try..catch vielleicht könnten Sie versuchen

if(this && this._getGalleryInfo) 
{ 
    //use the function 

} 

mit Ihnen auch in gleicher Weise prüfen konnte this.element.rel (if(this && this.element && this.element.rel) ...), bevor es zu benutzen.

Es sieht so aus, als ob der _getGalleryInfo oder this.element.rel noch nicht initialisiert wurde, so dass es noch nicht existiert. Überprüfen Sie, ob es existiert, wenn ich es benutze.

natürlich könnte ich völlig falsch sein, die einzige Möglichkeit zu wissen ist, indem Sie es ausprobiert.

0

Ich hatte das gleiche Problem mit Lightwindow 2.0, IE6, IE7, IE8 (Beta); Ich habe auf folgende Weise für IE6, IE7, IE8 (Beta) gelöst.

Statt:
  if(gallery = this._getGalleryInfo(link.rel))
Ich habe auf den Linien 443 und 1157:
  gallery = this._getGalleryInfo(link.rel)
  if(gallery)

Hope this helfen!

Verwandte Themen