1

「objFrame」という名前の IFrame を含む Web ページがあります。

Javascript ファイルでは、次のステートメントが実行されます。

var useWindow = (typeof(window.objFrame) != "未定義" && typeof(window.objFrame.contentWindow) != "未定義");

コードを実行するとき (通常、またはデバッガーでステップ実行)、式

(typeof(window.objFrame) != "未定義" && typeof(window.objFrame.contentWindow) != "未定義")

Firebug のウォッチ ウィンドウに貼り付けると true になりますが、useWindow の値は false になります。

Firebug 1.3.2 で Firefox 3.0.6 を使用しています。

ここで何が欠けていますか?これは私の単純な構文エラーであることを教えてください(?!?)

4

3 に答える 3

1

私は Firebug でも同様のことを確認しており、2 つの問題/回避策が見つかりました。

  • Firebug で奇妙なことが起こり始めた後、Firefox を再起動すると改善することがよくあります
  • 私は dojo を使用していて、デバッガーで 1 つのことを確認し、別のことが次のようなコード パターンで実際に発生していることを確認しました (Firebug では status = true ですが、実際には未定義です)。

    dojo.byId("ajaxProgress").style.visibility = "hidden";

    var ステータス = responseObject.status;

これらの行の順序を変更すると、現実と一致し始めました。

于 2009-02-10T22:22:08.333 に答える
0

私は一緒に行きます

var useWindow = (window.objFrame != null
    && window.objFrame.contentWindow != null);

可能であれば。

それがあなたが検出しようとしているものだと思いますが、 typeof(null) をチェックするのは少し不安定なようです。

(これが機能しない正当な理由がある場合は、私を無視してください:))

于 2009-02-10T22:38:20.480 に答える