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

时间:2013-08-01 13:43:38

标签: javascript jquery internet-explorer resize invalid-argument

在使用以下代码片段对窗口调整大小事件做出反应时,我在IE8中收到脚本错误,尽管浏览器按预期执行函数'dummyFunc()':

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中显示“脚本错误”消息,这是不可爱的。我很欣赏有关如何摆脱错误消息的任何提示。

谢谢

4 个答案:

答案 0 :(得分:2)

dummyFunc()更改为dummyFunc。如您所知,您正在立即执行该函数,然后将undefined(函数调用的结果)传递给setTimeout

您想要传递对函数的引用:

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

答案 1 :(得分:0)

在调试脚本时,您必须运行ie8。在查看页面时按F12并从那里开始调试。然后,您将必须分析出现脚本错误的位置。

答案 2 :(得分:0)

在第一个setTimeout之前,

resizeTimer未定义。试试if(resizeTimer) { clearTimeout(resizeTimer); ...

答案 3 :(得分:0)

您正在通过调用它立即执行dummyFuncdummyFunc()被函数的返回值替换,这是未定义的。

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

只需省略dummyFunc处的护腕即可将其作为参考传递。

resizeTimer = setTimeout(dummyFunc, 100);

我从未见过你传过的最后一个参数,所以我把它遗漏了。这很容易在IE8中抛出错误。