在页面的某些部分加载时,调用的javascript函数未定义

时间:2009-11-05 21:16:13

标签: javascript

我有一个aspx页面,其中包含head标记中的javascript文件。此页面上有一个用户控件。用户控件具有内联javascript函数的链接,该函数引用在aspx页面上加载的javascript文件中定义的对象。 该应用程序包含一个母版页和许多其他aspx页面。有问题的页面(使用javascript文件)在任何其他页面之前加载,并呈现与javascript文件的链接。但是,如果我点击链接,我会收到一条错误,说“Microsoft JScript运行时错误:'Foo'未定义”。其中foo是javascript文件中定义的对象。但是,如果我等到页面的所有部分都加载,链接工作正常。这里发生了什么?如何防止发生此错误?

感谢。

1 个答案:

答案 0 :(得分:1)

  

如果我等到页面的所有部分都加载完毕,链接就可以正常工作

对我说,当你点击带有内联函数的链接时,浏览器还没有完成检索和执行js文件。

一个可能的解决方案是等到页面加载后附加点击处理程序:

window.onload = function() {
  var link = document.getElementById('myLink');
  link.onclick = function() {
    // on click logic
  }
}

这只是一个例子。这将放在您的js文件中,以便一次加载所有依赖项。

由于你在问题中略有概括,所以要更具体一点有点困难。