IE8 Dot与Bracket表示法

时间:2012-11-01 14:02:17

标签: javascript jquery internet-explorer iframe internet-explorer-8

我在IE8中遇到一个奇怪的问题,我试图通过简单的方式来抓住一些东西:

window.frames.frames[0].name; // get the name of the inner iFrame object

没什么好看的,但是当脚本运行时,IE7-8会这样解读:

window.frames.frames.0.name;

// which in-turn gives the error
// 'window.frames.frames.0.name' is null or not an object (which is not true)

为什么以及如何转换这个,为什么它不再工作了?

如果我在IE8的控制台中键入第一个window.frames.frames[0].name;,它会抓取正确的iFrame。但输入IE8解释的内容(window.frames.frames.0.name;)根本不起作用......(奇怪的是,“预期的”;'“,这没有任何意义哈哈。

有人遇到过这样的问题吗?

3 个答案:

答案 0 :(得分:1)

window.frames是一个数组,不是吗?你不应该索引第一帧吗?

window.frames[0].frames[0].name;

答案 1 :(得分:1)

错误消息中的点符号只是浏览器使用的字符串,浏览器开发人员选择不当。

The line `window.frames.frames[0].name` does not make sense.

我希望

window.frames[0].name 

或者它是否是框架中的嵌套框架

window.frames[0].frames[0].name 

答案 2 :(得分:1)

如果你在电话旁边加上括号,它会起作用吗?像这样:

(window.frames.frames[0]).name; // get the name of the inner iFrame object

你真的是指参考window.frames.frames[0]而不只是window.frames[0]吗?

或者你的意思是:

window.frames[0].frames[0].name; // get the name of the inner iFrame object