Javascript函数虽然确实存在,但未定义

时间:2014-08-07 16:07:36

标签: javascript ajax function undefined frameset

我正在努力更新为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);

1 个答案:

答案 0 :(得分:1)

根据上述评论:在处理互连的<iframe>内容时,记住将不同的帧视为单独的全局上下文非常重要。换句话说,每个人都拥有自己的window。可以导航链接帧的引用,因为OP中的代码在引用top.frames["Main"]时正在执行。引用&#34; onclick&#34;等属性也必须考虑到这一点;类似地,想要向其他帧添加函数或全局值的代码必须明确地这样做。