我的网站使用jquery/javascript;t在ie9和I'I’我不知道为什么

my website, which uses jquery/javascript, doesn't work in ie9 and I'm not sure why

本文关键字:为什么 我不知道 ie9 网站 jquery 我的 javascript      更新时间:2023-09-26

我不够熟练,无法弄清楚这其中的哪一部分在IE9中出错。我有一个显示单词的游戏,当他们点击div时,它会为翻转动作设置动画,并显示与单词相关的描述。

在IE9中,它加载第一个单词,但不会动画化和显示描述。这是我在jquery/javascript中创建的第一个东西。它是由几个不同的jquery库和一些javascript组成的弗兰肯斯坦怪物。

  • 翻转动作:http://lab.smashup.it/flip/(这适用于IE9.)
  • xml2json@fyneworks.com

为了让它发挥作用,我必须研究什么?

这是代码:

        <script src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      // Load jQuery
      google.load("jquery", "1");   
    </script>
    <script src="js/jquery-ui-1.7.2.custom.min.js"></script>
    <script src="js/jquery.flip.min.js"></script>
    <script src="js/jquery.xml2json.js" type="text/javascript" language="javascript"></script>
    <script type="text/javascript">
    var cC = 0;
    var flashcards;
    var aCards = [];
    var totalCards = Number(0);
    var cardToggle = Boolean(false); //not Flipped to start out
    $.get('xml/den204_fc_module01.xml', function(xml) {
        var flash = $.xml2json(xml);
        flashcards = flash.card;
        for (var i = 0, len = flashcards.length; i < len; i++) {
            var tempCards = flashcards[i];
            aCards.push({
                t: tempCards.term,
                d: tempCards.def
            });
            function shuffle(array) { // from: http://stackoverflow.com/questions/6274339/how-can-i-shuffle-an-array-in-javascript
                var counter = array.length, temp, index;
                while (counter > 0) {
                    index = (Math.random() * counter--) | 0;
                    temp = array[counter];
                    array[counter] = array[index];
                    array[index] = temp;
                }
                return array;
            }
            shuffle(aCards);
            totalCards = aCards.length;
            $('#containerFront').text(aCards[cC].t);
            $("#previousSet").addClass("disabled");
        }
    });
    $(document).ready(function() {
        $("#clickableCard").click(function() {
            if (cardToggle === false) {
                console.log('cardToggle is equal to false');
                cardToggle = true;
                $("#flipbox").flip({
                    direction: "tb",
                    color: "#ffd699",
                    content: "<div id='containerBack'>" + aCards[cC].d + "</div>",
                    speed: 400,
                });
            } else {
                console.log('cardToggle is equal to true');
                cardToggle = false;
                $("#flipbox").flip({
                    direction: "bt",
                    color: "#adc2d6",
                    content: "<div id='containerFront'>" + aCards[cC].t + "</div>",
                    speed: 400,
                });
            }
            return false;
        });
        $("#navi").click(function() {
            if (cardToggle === true) {
                console.log('cardToggle is equal to true');
                cardToggle = false;
                $("#flipbox").flip({
                    direction: "bt",
                    color: "#adc2d6",
                    content: "<div id='containerFront'>" + aCards[cC].t + "</div>",
                    speed: 200,
                });
            }
            if (cC === 0) {
                $("#previousSet").addClass("disabled");
            } else {
                $("#previousSet").removeClass("disabled");
            }
            if (cC == (totalCards - 1)) {
                $("#nextSet").addClass("disabled");
            } else {
                $("#nextSet").removeClass("disabled");
            }
        });
        $("#nextSet").click(function() {
            console.log(cC);
            if (cC < (totalCards - 1)) {
                ++cC;
                $('#containerFront').text(aCards[cC].t);
                $('#containerBack').text(aCards[cC].d);
            } else {
                console.log("cC is not less than or equal the total number of cards!");
            }
        });
        $("#previousSet").click(function() {
            console.log(cC);
            if (cC > 0) {
                --cC;
                $('#containerFront').text(aCards[cC].t);
                $('#containerBack').text(aCards[cC].d);
            } else {
                console.log("cC is not greater then 0!");
            }
        });
    });
    </script>

删除或注释掉代码中的console.log语句。除非控制台打开,否则IE会阻塞它们。

为了回应SpYk3HH下面的评论,这来自微软自己的博客之一:

请记住,除非您有开发人员工具打开。您可以在控制台或脚本选项卡。使用控制台进行调试时要小心。如果在移动时在代码中留下对控制台对象的调用到生产时,您没有显示开发人员工具将收到一条错误消息,告诉您控制台未定义。

从代码中删除所有console.log

在IE9中,console对象只有在调试模式下才是活动的。

如果你真的想记录东西,你可以这样做,

if(console || console !== undefined){
   //log here
}