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