簡體   English   中英

IE8中窗口大小調整時JQuery / Javascript無效參數腳本錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM