我正在努力更新为ie8设计的旧网站,并使用框架集来管理布局。
我将一段代码添加到一个框架中,该框架将在另一个框架上创建div并通过AJAX将内容加载到其中。问题是,无论出于何种原因,当我通过onclick调用它时,它一直说我的函数是未定义的。奇怪的是,这只发生在它通过AJAX加载时,而不是当它作为其页面加载时。
我已经检查了JS,并且页面上的任何地方都没有语法错误。
如果有人想看到它,我试图运行的功能如下:
function closePopup() {
alert('');
}
我已从页面中删除了所有其他javascript,但仍然说它未定义。
编辑:这是加载页面的jQuery代码:
var main = top.frames["Main"].document;
$.ajaxSetup({ cache: false });
var centeringDiv = $("<div />", main)
.css({
"position": "absolute",
"top": "25%",
"text-align": "center",
"width": "100%",
"z-index": "100"
})
.appendTo(main.body);
var lookUpDiv = $("<span />", main)
.attr("id", "lookUpDiv")
.css({
"background-color": "#ffffff",
"padding": "10px",
"text-align": "center"
})
.text("Loading: Please Wait.")
.load("associateLookup.asp")
.appendTo(centeringDiv);
答案 0 :(得分:1)
根据上述评论:在处理互连的<iframe>
内容时,记住将不同的帧视为单独的全局上下文非常重要。换句话说,每个人都拥有自己的window
。可以导航链接帧的引用,因为OP中的代码在引用top.frames["Main"]
时正在执行。引用&#34; onclick&#34;等属性也必须考虑到这一点;类似地,想要向其他帧添加函数或全局值的代码必须明确地这样做。