Domanda

Io l'ho appena ricevuto e aggirato un problema con LightWindow e IE7, dove, al caricamento della pagina, si genera un errore di JavaScript on line 444 del lightwindow.js, sostenendo che il object does not support this property or method.Nonostante la ricerca di vari post su vari forum, Google non potevo trovare era una soluzione, così sto postando qui nella speranza che possa aiutare qualcuno / a me stesso più tardi.

Molti suggerito un ordine specifico del file di script, ma stavo già utilizzando questo ordine (prototype, scriptaculous, lightwindow).

Questi sono i passi che ho preso che sembrava finalmente lavoro, li scrivo qui solo come un record, come io non so, né avere il tempo di prova che quelle specificamente "risolto" il problema:

  1. Spostato la chiamata di lightwindow.js al fondo della pagina.
  2. Cambiato linea 444: if (this._getGalleryInfo(link.rel)) {
  3. Cambiato linea 1157 a: if (this._getGalleryInfo(this.element.rel)) {
  4. Infine, ho chiuso (e questo è sporca, le mie scuse) linee 1417 al 1474, con un try/catch blocco, la deglutizione eccezione.

EDIT:

Ho capito che questo ha rotto Firefox.Aggiungere la seguente riga 445 rende ora di lavoro try { gallery = this._getGalleryInfo(link.rel); } catch (e) { }

Non è molto bello, con un fix, ma la mia pagina (che contiene un lightwindow il link senza "rel" tag diversi lightwindow "links" che non sono "rel" tag " e uno "inline" link) funziona bene in IE7 ora.Si prega di commento, se avete qualcosa da aggiungere su questo problema o dei problemi con / miglioramenti per la mia soluzione.

È stato utile?

Soluzione

Ho risolto cambiando linea 444:

var gallery = this._getGalleryInfo(link.rel)

Poi, cambiando la successiva istruzione di confronto per:

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

...che sembra aver risolto in IE6+, mantenuto lavoro in Firefox etc.

Non ho cambiato la linea 1157 a tutti, ma non ho letto il codice per vedere cosa in realtà mi fa quindi non posso commentare la sua rilevanza?

Ho il sospetto che l' ?utilizzato nell'esempio attributo rel (Evoution?[man]) potrebbe essere la causa del problema con IE, ma senza spendere un periodo di prova di un paio di cose, non posso essere sicuro?

HTH.

Altri suggerimenti

Invece di try..catch forse si potrebbe provare a utilizzare

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

}

si potrebbe anche controllare allo stesso modo questo.elemento.rel ( if(this && this.element && this.element.rel) ...) prima dell'uso.

Sembra che ci sia un caso che il _getGalleryInfo o this.element.rel non è ancora stato inizializzato in modo non esiste ancora.Controllare se esiste quindi se io non lo uso.

naturalmente potrei essere completamente sbagliato, l'unico modo per saperlo è provarlo fuori.

Ho avuto lo stesso problema con Lightwindow 2.0, IE6, IE7, IE8 (beta);Ho risolto nel seguente modo per IE6, IE7, IE8 (beta).

Invece di:
 if(gallery = this._getGalleryInfo(link.rel))
Ho messo su linee 443 e 1157:
 gallery = this._getGalleryInfo(link.rel)
 if(gallery)

Spero che questo vi aiuterà!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top