0

私は小さな組織のためにこのスクリプトを開発することを志願しました (プログラミングの自己訓練の一環として)。部屋の座席をランダムに選択します (視聴者がどの座席が選択されたかを推測するのに数秒かかります)。私は Mac を使用しているので、主に Firefox でテストしましたが、これは魅力的に動作します。彼らの部屋のコンピューターは、Windows XP で Internet Explorer 6 を実行していることが判明しました (そして、ローカル ファイルでアクティブ コンテンツを有効にする必要がありました)。

彼らはエラーを知らせるために私に電話をかけ、彼らが提供した情報に基づいて、有罪判決はRowNumberDisplay.style = "color: #FF0000";またはvar RowNumberDisplay = document.getElementById("RowNumber");. IE6 での getElementById と .style の問題を Google とスタック オーバーフローですばやく検索しても無駄でした (よくある問題は name 属性による誤った一致ですが、問題の div には name 属性がありません)。このエラーの特定と対処に役立つ回答をお寄せいただきありがとうございます。

<!doctype html>
<html>
    <head>
        <title>The Lucky Person</title>
            <style type="text/css">
            input#SelectLuckyPerson
            {
                height: 150px;
                font-size: 60px;
            }
            p#RowDetails, p#SeatDetails, div#RowNumber, div#SeatNumber
            {
                font-size: 100px;
                display: inline;
            }
            div#RowNumber, div#SeatNumber
            {
                color: #0000FF;
            }
            </style>
    </head>
    <body>
        <div id="LuckyPersonIs"><input type="button" id="SelectLuckyPerson" value="And the lucky person is..." onClick="GetResults();"></div>
        <p id="RowDetails">Row number: <div id="RowNumber">0</div></p>
        <p id="SeatDetails">Seat number: <div id="SeatNumber">0</div></p>
        <script>
            var MinRow = 2;
            var MaxRow = 8;
            var SeatsInRow = new Array();
            SeatsInRow[1] = 25;
            SeatsInRow[2] = 25;
            SeatsInRow[3] = 27;
            SeatsInRow[4] = 27;
            SeatsInRow[5] = 27;
            SeatsInRow[6] = 27;
            SeatsInRow[7] = 29;
            SeatsInRow[8] = 31;
            SeatsInRow[9] = 31;
            SeatsInRow[10] = 31;
            SeatsInRow[11] = 31;
            SeatsInRow[12] = 33;
            SeatsInRow[13] = 33;
            SeatsInRow[14] = 33;
            var ShuffleSpeed = 200;
            var RowNumberDisplay = document.getElementById("RowNumber");
            var SeatNumberDisplay = document.getElementById("SeatNumber");
            var ChosenRow, ChosenSeat
            function GetResults()
            {
                var IsRunning = CheckStatus();
                if (IsRunning)
                {
                    ChosenRow = ChooseRow();
                    ChosenSeat = ChooseSeat();
                    RowNumberDisplay.style = "color: #FF0000";
                    SeatNumberDisplay.style = "color: #FF0000";
                    ShowRowResult = window.setInterval("TryRowResult()", ShuffleSpeed);
                    if (DelaySeats == false)
                    {
                        ShowSeatResult = window.setInterval("TrySeatResult()", ShuffleSpeed);
                    }
                }
            }
            function ChooseRow()
            {
                return Math.floor(Math.random() * (MaxRow - MinRow)) + MinRow;
            }
            function ChooseSeat()
            {
                return Math.ceil(Math.random() * SeatsInRow[ChosenRow]);
            }
            function TryRowResult()
            {
                TryRow = ChooseRow();
                RowNumberDisplay.innerHTML = TryRow;
                if (TryRow == ChosenRow)
                {
                    window.clearInterval(ShowRowResult);
                    document.getElementById("RowNumber").style = "color: #0000FF";
                    if (DelaySeats == true)
                    {
                        ShowSeatResult = window.setInterval("TrySeatResult()", ShuffleSpeed);
                    }
                }
            }
            function TrySeatResult()
            {
                TrySeat = ChooseSeat();
                SeatNumberDisplay.innerHTML = TrySeat;
                if (TrySeat == ChosenSeat)
                {
                    window.clearInterval(ShowSeatResult);
                    document.getElementById("SeatNumber").style = "color: #0000FF";
                }
            }
            function CheckStatus()
            {
                if (RowNumberDisplay.style.color == "rgb(255, 0, 0)" || SeatNumberDisplay.style.color == "rgb(255, 0, 0)")
                {
                    return false;
                }
                return true;
            }
            </script>
    </body>
</html>
4

1 に答える 1

5

要素のstyleプロパティは、文字列ではなくオブジェクトです。CSS 属性のようにテキストを割り当てるには、 に割り当てる必要がありますelement.style.cssText。これにより、文字列が解析され、複数のスタイルを定義するためのショートカットとして機能します。

ただし、この場合、これを使用できます。

ChosenRow.style.color = ChosenSeat.style.color = "#f00";
于 2013-10-03T01:25:00.453 に答える