![](/img/trans.png)
[英]how to debug legacy javascript code (works fine with IE, but abnormal in Google Chrome)
[英]javascript method not compiling in IE but works fine when running debug
我做了這個javascript方法,從網上找到的現有腳本更改了該方法,該腳本應該旋轉顯示無限數量的'.testimonial'
div。 該腳本在chrome和firefox中可以正常工作,但是除非您使用f12啟動腳本調試,否則它不能在Internet Explorer中編譯。 有沒有更好的方法來編寫此腳本? 我在網上尋找想法,但找不到任何東西。 我認為問題出在console.log(testimonialCount);
聲明,但不確定是否有更好的編寫方法。 任何幫助將不勝感激。 謝謝。
//rotate testimonials script
jQuery('.testimonial').hide();
var testimonialCount = $('.testimonial').length;
console.log(testimonialCount );
var currentItem = 0;
var timeout;
timeout = window.setTimeout((function(){switchDiv();}));
switchDiv = function() {
if (currentItem == testimonialCount - 1) {
jQuery('.testimonial').eq(testimonialCount - 1).hide();
currentItem = 0;
jQuery('.testimonial').eq(0).fadeIn();
timeout = window.setTimeout((function(){switchDiv();}),7000);
}
else {
jQuery('.testimonial').eq(currentItem).hide();
currentItem = currentItem + 1;
jQuery('.testimonial').eq(currentItem).fadeIn();
timeout = window.setTimeout((function(){switchDiv();}),7000);
}
}
IE開發人員工具未打開時,沒有console
對象。
因此,調用console.log()
會引發錯誤。
為了防止這種情況,您可以檢查if ('console' in window)
),如果沒有,則創建自己的虛擬控制台(或者只是不記錄任何內容)。
一些注意事項:
將此添加到腳本的頂部:
window.console = console || { 'log' : function(){} };
如果沒有,則定義window.console
。 除了避免錯誤外,什么也不做。
接下來,取出有關超時功能的括號:
timeout = window.setTimeout(function(){ switchDiv(); },7000);
...或者只是進一步簡化:
timeout = window.setTimeout(switchDiv,7000);
我在這里很挑剔,但是:
currentItem = currentItem + 1;
與currentItem++;
相同currentItem++;
另一個挑剔的東西window.setTimeout
與setTimeout
相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.