IE对我的javascript背景代码进行了修改。为什么?

IE对我的javascript背景代码进行了修改。为什么?,javascript,html,internet-explorer,debugging,Javascript,Html,Internet Explorer,Debugging,目前,我正在制作一个网站作为我的个人项目。我已经测试了我的javascript,它可以在chrome和firefox上正常工作。但当我在IE中测试它时,只有部分代码是有效的。奇怪的是,当我按下f12键并打开开发工具时,代码运行得非常完美!工作就像它应该做的一样,没有任何错误 以下是我的javascript: var state_Clicked = false; var List = document.createElement("div"); function gearClick() {

目前,我正在制作一个网站作为我的个人项目。我已经测试了我的javascript,它可以在chrome和firefox上正常工作。但当我在IE中测试它时,只有部分代码是有效的。奇怪的是,当我按下f12键并打开开发工具时,代码运行得非常完美!工作就像它应该做的一样,没有任何错误

以下是我的javascript:

var state_Clicked = false;
var List = document.createElement("div");

function gearClick() {
    if(state_Clicked == true) {
        List.parentNode.removeChild(List);
        state_Clicked = false;
    } else {
        List.setAttribute("id", "containBox");
        List.setAttribute("class", "bgChooserBox");
        List.innerHTML = '<span class="thumback"><img onMouseDown="changeBackground(\'RD1_SlurpyNom.jpg\');" class="thumb" src="GRAPHICS/bg/RD1_SlurpyNom.jpg" width="100" height="100" /></span> \
                          <span class="thumback"><img onMouseDown="changeBackground(\'FS1_SlurpyNom.jpg\');" class="thumb" src="GRAPHICS/bg/FS1_SlurpyNom.jpg" width="100" height="100" /></span> \
                          <span class="thumback"><img onMouseDown="changeBackground(\'AJ1_SlurpyNom.png\');" class="thumb" src="GRAPHICS/bg/AJ1_SlurpyNom.png" width="100" height="100" /></span> \
                          <span class="thumback"><img onMouseDown="changeBackground(\'PP1_SlurpyNom.png\');" class="thumb" src="GRAPHICS/bg/PP1_SlurpyNom.png" width="100" height="100" /></span> \
                          <span class="thumback"><img onMouseDown="changeBackground(\'R1_SlurpyNom.jpg\');" class="thumb" src="GRAPHICS/bg/R1_SlurpyNom.jpg" width="100" height="100" /></span> \
                          <span class="thumback"><img onMouseDown="changeBackground(\'TS1_SlurpyNom.jpg\');" class="thumb" src="GRAPHICS/bg/TS1_SlurpyNom.jpg" width="100" height="100" /></span> ';
        document.getElementsByTagName("body").item(0).appendChild(List);

        state_Clicked = true; 
    }
}

function changeBackground(name) {
    console.log('/GRAPHICS/bg/' + name);
    document.getElementById("body").style.backgroundImage = 'url(/GRAPHICS/bg/' + name + ')';
    document.getElementById("logo").style.opacity = '0.4';
}
var state\u Clicked=false;
var List=document.createElement(“div”);
函数gearClick(){
如果(单击状态==真){
List.parentNode.removeChild(列表);
state_Clicked=false;
}否则{
List.setAttribute(“id”、“containBox”);
setAttribute(“类”、“bgChooserBox”);
List.innerHTML=\
\
\
\
\
';
document.getElementsByTagName(“正文”).item(0).appendChild(列表);
state_Clicked=true;
}
}
函数changeBackground(名称){
console.log('/GRAPHICS/bg/'+name);
document.getElementById(“body”).style.backgroundImage='url(/GRAPHICS/bg/'+name+');
document.getElementById(“logo”).style.opacity='0.4';
}

任何帮助都将不胜感激。

删除
控制台.log
呼叫。它需要一个可用的
控制台
对象,否则将抛出错误。这就是为什么当您打开开发人员工具时,它会起作用,它们提供了一个控制台。

控制台。log
是最有可能导致问题的原因。控制台不是DOM中的实际对象,它通常由firebug、chrome开发者工具、IE开发者工具等工具添加到DOM中。。新版本的Chrome和Firefox在控制台调用未打开时会忽略它们。或者至少我认为是这样的,因为现在很多人都在使用控制台来调试adays,而这正是让人们更轻松的方法

无论如何,在IE中,当您的开发工具打开时,控制台是一个活动对象,因此脚本在打开时不会中断,但是当它关闭时,控制台对象不在那里,并且由于它不在那里,并且在这种情况下浏览器不会忽略它,因此脚本正在中断

从现在起,IE可能永远是每个web开发人员的眼中钉

如果您想使用控制台进行调试,我的建议是在逻辑中添加if-else,这样您就可以在打开和关闭的情况下来回切换

类似于
if(console.length>0){console.log('blah');}