[英]JQuery/Javascript invalid argument script error on window resize in IE8
虽然浏览器按预期执行函数'dummyFunc()',但在使用以下代码片段对窗口大小调整事件做出反应时,我在IE8中收到脚本错误:
var jq = jQuery.noConflict();
var resizeTimer;
jq(window).resize(function() {
clearTimeout(resizeTimer);
//resizeTimer = setTimeout(reloadSlider(), 100, 'JavaScript');
resizeTimer = setTimeout(dummyFunc(), 100, 'JavaScript');
});
function dummyFunc() {
alert('hurra');
}
因此,问题不在于浏览器没有提醒,问题在于Internet Explorer中显示“脚本错误”消息,这是不可爱的。 我很欣赏有关如何摆脱错误消息的任何提示。
谢谢
将dummyFunc()
更改为dummyFunc
。 正如您所拥有的那样,您正在立即执行该函数,然后将undefined
(函数调用的结果)传递给setTimeout
。
您想要传递对函数的引用:
resizeTimer = setTimeout(dummyFunc, 100, 'JavaScript');
在调试脚本时你必须运行ie8。 在查看页面时按F12并从那里开始调试。 然后,您将必须分析出现脚本错误的位置。
resizeTimer在第一个setTimeout之前是未定义的。 尝试if(resizeTimer) { clearTimeout(resizeTimer); ...
if(resizeTimer) { clearTimeout(resizeTimer); ...
您正在通过调用它立即执行dummyFunc
。 dummyFunc()
被函数的返回值替换,这是未定义的。
resizeTimer = setTimeout(dummyFunc(), 100, 'JavaScript');
只需省略dummyFunc
的护腕即可将其作为参考传递。
resizeTimer = setTimeout(dummyFunc, 100);
我从未见过你传过的最后一个参数,所以我把它留了出来。 这可能很容易在IE8中抛出错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.