我有一个aspx页面,其中包含head标记中的javascript文件。此页面上有一个用户控件。用户控件具有内联javascript函数的链接,该函数引用在aspx页面上加载的javascript文件中定义的对象。 该应用程序包含一个母版页和许多其他aspx页面。有问题的页面(使用javascript文件)在任何其他页面之前加载,并呈现与javascript文件的链接。但是,如果我点击链接,我会收到一条错误,说“Microsoft JScript运行时错误:'Foo'未定义”。其中foo是javascript文件中定义的对象。但是,如果我等到页面的所有部分都加载,链接工作正常。这里发生了什么?如何防止发生此错误?
感谢。
答案 0 :(得分:1)
如果我等到页面的所有部分都加载完毕,链接就可以正常工作
对我说,当你点击带有内联函数的链接时,浏览器还没有完成检索和执行js文件。
一个可能的解决方案是等到页面加载后附加点击处理程序:
window.onload = function() {
var link = document.getElementById('myLink');
link.onclick = function() {
// on click logic
}
}
这只是一个例子。这将放在您的js文件中,以便一次加载所有依赖项。
由于你在问题中略有概括,所以要更具体一点有点困难。