0

ページのロード時に、 の 444 行目で JavaScript エラーがスローされlightwindow.jsobject does not support this property or method. さまざまなフォーラムでさまざまな投稿を見つけたにもかかわらず、解決策を見つけることができた Google の結果はありませんでした。

多くの人がスクリプト ファイルの特定の順序を提案しましたが、私はすでにこの順序 (prototype、scriptaculous、lightwindow) を使用していました。

これらは、最終的に機能するように思われた手順です。どの手順が問題を具体的に「修正」したかはわかりませんし、テストする時間もないため、記録としてのみここに記述します。

  1. lightwindow.js への呼び出しをページの下部に移動しました。
  2. 行 444 を次のように変更しました。if (this._getGalleryInfo(link.rel)) {
  3. 1157 行を次のように変更しました。if (this._getGalleryInfo(this.element.rel)) {
  4. 最後に、1417 行から 1474 行までをブロックで囲み (これは汚くて申し訳ありません) try/catch、例外を飲み込んでいます。

編集:

これがFirefoxを壊したことに気づきました。以下を 445 行目に追加すると、動作するようになりました -try { gallery = this._getGalleryInfo(link.rel); } catch (e) { }

これはあまり良い修正ではありませんが、私のページ (「rel」タグのない lightwindow リンク、「rel」タグのあるいくつかの lightwindow リンク、および 1 つの「インライン」リンクを含む) は、現在 IE7 で問題なく動作します。この問題、または私の与えられたソリューションの改善に関する問題について追加することがあれば、コメントしてください。

4

3 に答える 3

1

try..catch の代わりに、使用してみてください

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

}

this.element.rel ( if(this && this.element && this.element.rel)... ) を使用する前に、同じ方法でチェックすることもできます。

_getGalleryInfoorthis.element.relがまだ初期化されていないため、まだ存在しない場合があるようです。存在するかどうかを確認してから、使用するかどうかを確認してください。

もちろん、私は完全に間違っている可能性があります。知る唯一の方法は、テストすることです。

于 2008-09-06T03:21:28.263 に答える
0

Lightwindow 2.0、IE6、IE7、IE8(ベータ版)でも同じ問題が発生しました。IE6、IE7、IE8(ベータ版)については、次のように解決しました。

代わりに:
 if(gallery = this._getGalleryInfo(link.rel))
私は443行目と1157行目を付けました:
 gallery = this._getGalleryInfo(link.rel)
 if(gallery)

これがお役に立てば幸いです。

于 2009-02-27T15:28:15.243 に答える