在asp.net页面中加载iframe

时间:2010-07-27 09:27:06

标签: c# javascript asp.net html iframe

我有一个asp.net页面,它继承了一个主页面,我加载javascripts.I喜欢放置一个iframe页面,它将指向一个html(其中包含javascript的链接)。将是我的java scrips工作?

2 个答案:

答案 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代码。

似乎是一个罗嗦的答案,我无法更好地解释。