1

我有一个名为“objFrame”的 IFrame 网页。

在 Javascript 文件中,执行以下语句:

var useWindow = (typeof(window.objFrame) != "undefined" && typeof(window.objFrame.contentWindow) != "undefined");

运行代码时(通常或使用调试器单步执行),表达式

(typeof(window.objFrame) != "undefined" && typeof(window.objFrame.contentWindow) != "undefined")

当我将它粘贴到 Firebug 的 Watch 窗口中时为 true,但 useWindow 的值为 false。

我正在使用 Firefox 3.0.6 和 Firebug 1.3.2。

我在这里想念什么?请告诉我这是我的一个简单的语法错误(?!?)

4

3 回答 3

1

我在 Firebug 上也看到过类似的情况,并且发现了两个问题/解决方法:

  • 在 Firebug 中开始发生一些奇怪的事情后,重新启动 Firefox 通常会有所帮助
  • 我正在使用 dojo 并在调试器中看到一件事,而另一件事实际上发生在这样的代码模式中(在 Firebug 中状态 = true,但实际上未定义):

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

    var status = responseObject.status;

一旦我改变了这些线条的顺序,事情就开始与现实相匹配。

于 2009-02-10T22:22:08.333 回答
0

如果您编写日志语句、打印整个值以及每个组件的“typeof”结果,这可能会有所帮助。还将这些输入到 Firebug 控制台。

“window.objFrame”不是只存在于 IE DOM 中吗?

在 Firebug 论坛或 comp.lang.javascript 中提出这样的问题不是更有意义吗?

于 2009-02-10T21:58:02.073 回答
0

我会去

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

如果可能的话。

我认为这就是您要检测的内容,但是检查 typeof(null) 对我来说似乎有点不稳定。

(如果有充分的理由这不起作用,请忽略我:))

于 2009-02-10T22:38:20.480 回答