在IE8中调整窗口大小时JQuery/Javascript无效参数脚本错误

JQuery/Javascript invalid argument script error on window resize in IE8

本文关键字:Javascript 无效 参数 脚本错误 JQuery 小时 IE8 调整 窗口      更新时间:2023-09-26

尽管浏览器按预期执行了函数"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); ...

您通过调用dummyFunc来立即执行它。dummyFunc()被未定义的函数的返回值替换。

resizeTimer = setTimeout(dummyFunc(), 100, 'JavaScript');

只需省略dummyFunc处的bracers即可将其作为引用传递。

resizeTimer = setTimeout(dummyFunc, 100);

我从未见过你传递的最后一个参数,所以我把它省略了。这很容易在IE8中引发错误。