JavaScript使用两种方法调用iFrame位置,两种行为......为什么

时间:2012-07-04 16:15:22

标签: javascript iframe

我有几个项目,我尝试使用这两行代码来调用iFrame的url。它们在IE9 +和FF中表现不同(IE7和IE8完美地与第一行一起工作..我还没有在IE7和IE8中测试过第二行)。

有谁知道这是为什么?我想它必须做IE webkit或其他什么?但是,我不确定。

// This calls the iFrame once, but if you call it again with this command, it throws
// a null object error
window.frames["el"].location 

//versus 

// This seems to work the same each time.
document.getElementById("el").src

任何见解都会很酷......谢谢!

1 个答案:

答案 0 :(得分:1)

第一种方法frames直接访问窗口,并读取实时位置属性。它只有一个限制:当帧的原点不同时,它会失败。

第二种方法读取帧的src 属性。当框架导航时,它不会更新。因此,这个属性是不可靠的。

另一种选择是从框架的location属性中读取contentWindow。它与第一种方法具有相同的限制,但您不必将name属性附加到框架。

document.getElementById("el").contentWindow.location