javascript方法不在IE中编译,但在运行调试时工作正常

javascript方法不在IE中编译,但在运行调试时工作正常,javascript,jquery,Javascript,Jquery,我制作了这个javascript方法,它是我在网上找到的一个现有脚本的基础上修改的,该脚本应该循环显示无限数量的'.commential'div。该脚本在chrome和firefox中运行良好,但不会在internet explorer中编译,除非您使用f12启动脚本调试有没有更好的方法来编写这个脚本?我在网上寻找了一些想法,但没有找到任何东西。我认为问题在于console.log(证明计数)语句,但我不确定是否有更好的编写方法。任何帮助都将不胜感激。谢谢 //rotate testimonia

我制作了这个javascript方法,它是我在网上找到的一个现有脚本的基础上修改的,该脚本应该循环显示无限数量的
'.commential'
div。该脚本在chrome和firefox中运行良好,但不会在internet explorer中编译,除非您使用f12启动脚本调试有没有更好的方法来编写这个脚本?我在网上寻找了一些想法,但没有找到任何东西。我认为问题在于
console.log(证明计数)语句,但我不确定是否有更好的编写方法。任何帮助都将不胜感激。谢谢

//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.log()
会引发错误


为了防止出现这种情况,您可以检查
if('console'在窗口中)
,并制作您自己的虚拟控制台(或者不记录任何内容)。当IE开发人员工具未打开时,没有
控制台
对象。
因此,调用
console.log()
会引发错误

为了防止出现这种情况,您可以检查
if('console'在窗口中)
,并制作您自己的虚拟控制台(或者不记录任何内容)。

一些注意事项:

将以下内容添加到脚本的最顶端:

window.console = console || { 'log' : function(){} };
这定义了
window.console
,如果它不是。除了避免错误,什么都不做

接下来,去掉超时函数周围的括号:

timeout = window.setTimeout(function(){ switchDiv(); },7000);
。。。或者进一步简化:

timeout = window.setTimeout(switchDiv,7000);
我在这里很挑剔,但是:

currentItem=currentItem+1
currentItem++相同

另一个挑剔的东西是
window.setTimeout
setTimeout

一些注意事项:

将以下内容添加到脚本的最顶端:

window.console = console || { 'log' : function(){} };
这定义了
window.console
,如果它不是。除了避免错误,什么都不做

接下来,去掉超时函数周围的括号:

timeout = window.setTimeout(function(){ switchDiv(); },7000);
。。。或者进一步简化:

timeout = window.setTimeout(switchDiv,7000);
我在这里很挑剔,但是:

currentItem=currentItem+1
currentItem++相同


另一件很挑剔的事
window.setTimeout
setTimeout
相同,谢谢。
console.log(证明计数)在脚本中并没有做任何事情,所以我把它取出来,它编译得很好。感谢您帮助我了解控制台的工作原理。谢谢。
console.log(证明计数)在脚本中并没有做任何事情,所以我把它取出来,它编译得很好。感谢您帮助我理解控制台的工作原理。请注意,这与“编译”无关;Javascript没有被编译。请注意,这与“编译”无关;Javascript没有编译。