Javascript &引用;未捕获引用错误:未定义自动调整大小“;
下面是我的Javascript文档,它在Javascript &引用;未捕获引用错误:未定义自动调整大小“;,javascript,Javascript,下面是我的Javascript文档,它在$(document.ready()中运行。Javascript是从我的站点的页脚加载的。为了简化,我将[…]替换为不相关的代码 // When the document is ready, run the display scripts $(document).ready(function() { // Define the frame height functions function getDocHeight(doc) { [...] }
$(document.ready()
中运行。Javascript是从我的站点的页脚加载的。为了简化,我将[…]
替换为不相关的代码
// When the document is ready, run the display scripts
$(document).ready(function() {
// Define the frame height functions
function getDocHeight(doc) {
[...]
}
document.domain = 'mysite.com';
function resizeIframe() {setIframeHeight('date-price-book');}
function setIframeHeight(ifrm) {
[...]
}
function AutoResize() {
resizeIframe();
resizeIframe();
setTimeout("AutoResize()", 500);
}
AutoResize();
[... more Javascript code...]
当我运行页面时,我得到一个错误:uncaughtreferenceerror:AutoResize()未定义
我可以通过注释掉AutoResize()行来阻止此错误的发生代码>(上面我的示例代码的最后一行)。但是为什么会抛出这个错误呢?当然,AutoResize()函数刚刚在它上面的几行中定义过
谢谢你的帮助
setTimeout("AutoResize()", 500);
当执行上面的setTimeout时,它将在全局范围内评估字符串。AutoResize()隐藏在闭包中,因此找不到它
使用名称为函数指定引用
setTimeout(AutoResize, 500);
另一个选择是关闭
setTimeout(function() { AutoResize(); }, 500);
如果要向函数发送参数,可以使用闭包方法
当执行上面的setTimeout时,它将在全局范围内评估字符串。AutoResize()隐藏在闭包中,因此找不到它
使用名称为函数指定引用
setTimeout(AutoResize, 500);
另一个选择是关闭
setTimeout(function() { AutoResize(); }, 500);
如果要向函数发送参数,可以使用闭包方法 因为您正在$(document.ready(function(){…})中定义自动调整大小
代码>闭包,它不是全局可用的(这很好)
调用setTimeout
时使用字符串而不是函数引用时(这是错误的),假设字符串将解析为的函数调用是全局可用的(因为setTimeout
在窗口中运行
/global scope).因为您正在$(文档)中定义自动调整大小代码>闭包,它不是全局可用的(这很好)
调用setTimeout
时,如果使用字符串而不是函数引用(这是错误的),则会假设字符串将解析为的函数调用是全局可用的(因为setTimeout
在窗口中运行
/global scope)。我不确定。当我尝试这一部分时,它起作用了
function AutoResize(){
console.log('test');
setTimeout('AutoResize()',1000);
}
AutoResize();
也许是别的地方出了问题。我不确定。当我尝试这一部分时,它起作用了
function AutoResize(){
console.log('test');
setTimeout('AutoResize()',1000);
}
AutoResize();
可能是其他地方出了问题。setTimeout(AutoResize,500)
更好,可能会解决您的启动问题。setTimeout(AutoResize,500)
更好,可能会解决您的启动问题。啊,我明白了。我应该是那个问编程问题的人。但是stackoverflow不让我,因为他们认为我太蠢了,不会问问题。但他们认为我很聪明,可以回答问题。所以这是件好事。啊,你抓住我了。我应该是那个问编程问题的人。但是stackoverflow不让我,因为他们认为我太蠢了,不会问问题。但他们认为我很聪明,可以回答问题。所以这是件好事。