我有一个asp.net页面,它继承了一个主页面,我加载javascripts.I喜欢放置一个iframe页面,它将指向一个html(其中包含javascript的链接)。将是我的java scrips工作?
答案 0 :(得分:2)
如果您了解其执行上下文,则<iframe>
中的页面导入的Javascript文件将“正常”工作。 <iframe>
从父页面提供单独的页面上下文,具有自己的DOM。 <iframe>
DOM链接到父DOM,如果页面来自同一个域,则父DOM链接到<iframe>
。
这意味着来自<iframe>
,如果你的代码假定它在它自己的窗口中,它可能只是工作正常(或者它有任何错误:-)然而,它将无法使用document.getElementById("foo")
之类的内容来查找父页面中的元素。要跨越页面边界,代码必须明确使用window.parent
链接转到包含页面。
我想我所说的是你必须明白<iframe>
不像父页面的“导入”或“#include”工具。这是一种创建完整“子页面”的方式。
答案 1 :(得分:1)
是的,JavaScript可以在iframe中运行。但是,要意识到你正在处理不同的文档/窗口对象,并且窗口对象是不同的,所以要从iframe传递到父窗口,你必须使用window.parent来获取父窗口的窗口对象。
您正在使用不同的上下文。如果忽略window.parent,在iframe中运行的Javascript代码可以被认为是运行隔离的javascript代码。
似乎是一个罗嗦的答案,我无法更好地解释。