0

現在、個人的なプロジェクトとしてウェブサイトを作っています。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';
}

どんな助けでも大歓迎です。

4

2 に答える 2

0

通話を削除しconsole.logます。console使用可能なオブジェクトが必要です。そうでない場合、エラーがスローされます。そのため、開発者ツールを開いているときに機能し、コンソールを提供します。

于 2012-07-25T02:14:33.840 に答える
0

console.log問題を引き起こしている可能性が最も高いものです。コンソールはDOM内の実際のオブジェクトではなく、通常、firebug、chrome開発者ツール、IE開発者ツールなどのツールによって追加されます。ChromeとFirefoxの新しいバージョンは、開いていないときにコンソール呼び出しを無視します。あるいは、少なくとも、多くの人が今日デバッグにコンソールを利用していて、人々にとって物事を簡単にする方法があるので、これは事実だと思います。

とにかく、IEの場合、開発ツールを開いているときはコンソールがアクティブオブジェクトであるため、開いたときにスクリプトが壊れることはありませんが、閉じたときにコンソールオブジェクトは存在せず、存在しないためです。そうでなければ、そのようなイベントでブラウザによって無視され、スクリプトが壊れています。

IEは、今から数日の終わりまで、すべてのWeb開発者側で常に厄介な問題になっています。

コンソールを使用してデバッグする場合は、ロジックにif-elseを追加して、オンとオフを切り替えて前後に切り替えることができるようにすることをお勧めします。

何かのようなものif(console.length > 0){console.log('blah');}

于 2012-07-25T02:15:09.257 に答える