0

编写了一个练习和解决方案页面,带有启动显示或隐藏解决方案的 js 功能的按钮。它在最新的 FF、CH 和 IE 上完美运行,但在 IE8-7-6 上,当我单击按钮时,解决方案不显示,并且我在状态行中收到“页面错误”消息。我在网上搜索解决方案,尝试了“regsvr32 jscript.dll”,没有任何帮助。这是一个jsFiddle, js 在那里也不起作用,但这可能是因为我不知道如何正确使用它。无论如何,代码都可以查看。

有问题的代码是: 1. 像这样的 html 按钮:

<button class="button100" onclick="reveal('sol2');">הצג</button>

JS 'reveal()' 函数:

function reveal(pId){
        if(pId == 'all_sol'){
            for(var x in solArr){
                document.getElementById(x).innerHTML = "<button class=\"button100\" onclick=\"cover('" + x + "');\">הסתר</button>" + solArr[x];
            }
            document.getElementById(pId).innerHTML = "<button class=\"button100\" onclick=\"cover('" + pId + "');\">הסתר את כל הפתרונות</button>";
        }
        else {
            document.getElementById(pId).innerHTML = "<button class=\"button100\" onclick=\"cover('" + pId + "');\">הסתר</button>" + solArr[pId];
        }   
    }

这是漏洞:HTML:

<!DOCTYPE html>

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-8-i" />
        <link rel="stylesheet" type="text/css" href="general_style.css" />
        <link rel="stylesheet" type="text/css" href="exercises_style.css" />
        <script type="text/javascript" src="exercises_script.js"></script>
        <title> תרגילים </title>
    </head>

    <body>
        <div id="container">
            <div id="header">
                <div class="padding_10">
                    <img src="logo.png"></img>
                </div>
                <ul class="nav_bar">
                    <li><a href="operators.htm"> אופרטורים </a></li>
                    <li id="current_nav_bar_li"><a href="exercises.htm"> תרגילים </a></li>
                    <li><a href="concepts.htm"> מושגים </a></li>
                    <li><a href="template.htm">תבנית</a></li>
                </ul>
            </div>
            <div id="body">
                <div class="padding_10">

                    <h1> תרגילים ופתרונות </h1>
                    <p> להלן תרגילים שניתנו במהלך הקורס, בצירוף פתרונותיהם. בתרגילים חישוביים הפתרון מפרט כל פעולה חישובית ש JavaScript תבצע באם יוזן התרגיל לחישוב. השורה הראשונה מציגה את הביטוי המוזן לחישוב, כל שורה מכאן ואילך מציגה פעולה אחת של JavaScript. </p>

                    <h2> אלגוריתם ראשון </h2>
                    <h3> תרגיל 1 </h3>
                    <p>
                        הבת של טל יודעת:

                        <ol>
                            <li> לצייר ולכתוב </li>
                            <li> להוסיף 1 לכל מספר </li>
                            <li> להכפיל מספר בעצמו </li>
                            <li> לבדוק זהות בין שני מספרים </li>
                        </ol>

                        יש לכתוב אלגוריתם שבאמצעותו תוכל הבת של טל לחשב שורש ריבועי עבור מספר נתון.
                    </p>

                    <h3> פתרון תרגיל 1 </h3>
                    <p id="sol1">
                        <button class="button100" onclick="reveal('sol1');">הצג</button>
                    </p>


                    <h2> אופרטורים '+', '-', '*' </h2>
                    <h3> תרגיל 2 </h3>
                    <p>
                        פתור את התרגיל על פי סדר הקדימות ב- JavaScript:
                        <div dir="ltr">
                            3 + 2 + 5 + 7 * 3 + 4 * 2 * 3
                        </div>
                    </p>

                    <h3> פתרון תרגיל 2 </h3>
                    <p id="sol2">
                        <button class="button100" onclick="reveal('sol2');">הצג</button>
                    </p>

                    <h3> תרגיל 3 </h3>
                    <p>
                        פתור את התרגיל על פי סדר הקדימות ב- JavaScript:
                        <div dir="ltr">
                            5 - 2 * 4 * 3 - 7 - 9 - 4 - 2 - 1 * 3
                        </div>
                    </p>

                    <h3> פתרון תרגיל 3 </h3>
                    <p id="sol3">
                        <button class="button100" onclick="reveal('sol3');">הצג</button>
                    </p>

                    <h2> סוגריים </h2>
                    <h3> תרגיל 4 </h3>
                    <p>
                        פתור את התרגיל על פי סדר הקדימות ב- JavaScript:
                        <div dir="ltr">
                            (2 + 3) + 5 + (4 + (2 * 2 + 5) - 2) + 3 * 3
                        </div>
                    </p>

                    <h3> פתרון תרגיל 4 </h3>
                    <p id="sol4">
                        <button class="button100" onclick="reveal('sol4');">הצג</button>
                    </p>

                    <h2> מודולו </h2>
                    <h3> תרגיל 5 </h3>
                    <p>
                        פתור את התרגיל על פי סדר הקדימות ב- JavaScript:
                        <div dir="ltr">
                            5 % 2 % 5
                        </div>
                    </p>

                    <h3> פתרון תרגיל 5 </h3>
                    <p id="sol5">
                        <button class="button100" onclick="reveal('sol5');">הצג</button>
                    </p>

                    <h3> תרגיל 6 </h3>
                    <p>
                        פתור את התרגיל על פי סדר הקדימות ב- JavaScript:
                        <div dir="ltr">
                            5 * 3 % 4 * 1 % 6
                        </div>
                    </p>

                    <h3> פתרון תרגיל 6 </h3>
                    <p id="sol6">
                        <button class="button100" onclick="reveal('sol6');">הצג</button>
                    </p>

                    <h2> שמות משתנים </h2>
                    <h3> תרגיל 7 </h3>
                    <p>
                        האם שמות המשתנים להלן חוקיים?
                        <div dir="ltr">
                            <ol class="margin_left">
                                <li> --- </li>
                                <li> ______ </li>
                                <li> 0_ </li>
                                <li> a_a </li>
                                <li> a1321 </li>
                                <li> ab 12 </li>
                                <li> var </li>
                            </ol>
                        </div>
                    </p>

                    <h3> פתרון תרגיל 7 </h3>
                    <p id="sol7">
                        <button class="button100" onclick="reveal('sol7');">הצג</button>
                    </p>

                    <h2> השמה </h2>
                    <h3> תרגיל 8 </h3>
                    <p>
                        פתור את התרגיל על פי סדר הקדימות ב- JavaScript:
                        <div dir="ltr">
                            var x, y, z;<br />
                            z = x = 2 * 2 + 3 + ( 4 + 5 ) + ( x = 3 ) * ( y = 2 )
                        </div>
                    </p>

                    <h3> פתרון תרגיל 8 </h3>
                    <p id="sol8">
                        <button class="button100" onclick="reveal('sol8');">הצג</button>
                    </p>

                    <h3> תרגיל 9 </h3>
                    <p>
                        פתור את התרגיל על פי סדר הקדימות ב- JavaScript:
                        <div dir="ltr">
                            var x, y, z;<br />
                            x = ( x = y = z = ( 2 * 5 ) + 3 + 2 % 2 ) % ( z = 2 - 1 * 3 )
                        </div>
                    </p>

                    <h3> פתרון תרגיל 9 </h3>
                    <p id="sol9">
                        <button class="button100" onclick="reveal('sol9');">הצג</button>
                    </p>

                    <p id="all_sol">
                        <button class="button100" onclick="reveal('all_sol');">הצג את כל הפתרונות</button>
                    </p>
                </div>
            </div>
            <div id="footer">
                <ul>
                    <li> כל הזכויות על החומר הלימודי באתר שמורות לטל שחור </li>
                    <li> האתר נבנה על ידי יחזקאל יובל </li>
                    <li> 050-9035454 </li>
                    <li> yovel.zack@gmail.com </li>
                </ul>
            </div>
        </div>
    </body>

</html>

和JS:

var solArr = new Object();

solArr.sol1 = "<ol><li> אם המספר הוא 0 או 1, הוא גם השורש של עצמו. אמרי לאבא שהמספר הוא השורש. אחרת המשיכי לשלב הבא.</li><li> ציירי שלושה ריבועים. </li><li> באמצעי רשמי את המספר שאת השורש שלו צריך לחשב. </li><li> בשמאלי רשמי את המספר 2.</li><li> בימני רשמי את התוצאה של הכפלת המספר הרשום בריבוע השמאלי בעצמו. </li><li> בדקי אם המספר הרשום בריבוע הימני זהה למספר הרשום בריבוע האמצעי. </li><li> אם יש זהות, אמרי לאבא שהמספר הרשום בריבוע השמאלי הוא השורש. אחרת המשיכי לשלב הבא. </li><li> אם אין זהות,  הוסיפי למספר הרשום בריבוע השמאלי 1 וחיזרי לשלב 5.</li></ol>";

solArr.sol2 = "<div dir=\"ltr\"><ol class=\"margin_left\"><li>3 + 2 + 5 + 7 * 3 + 4 * 2 * 3</li><li>3 + 2 + 5 + 21 + 4 * 2 * 3</li><li>3 + 2 + 5 + 21 + 8 * 3</li><li>3 + 2 + 5 + 21 + 24</li><li>5 + 5 + 21 + 24</li><li>10 + 21 + 24</li><li>31 + 24</li><li>55</li></ol></div>";

solArr.sol3 = "<div dir=\"ltr\"><ol class=\"margin_left\"><li>5 - 2 * 4 * 3 - 7 - 9 - 4 - 2 - 1 * 3</li><li>5 - 8 * 3 - 7 - 9 - 4 - 2 - 1 * 3</li><li>5 - 24 - 7 - 9 - 4 - 2 - 1 * 3</li><li>5 - 24 - 7 - 9 - 4 - 2 - 3</li><li>-19 - 7 - 9 - 4 - 2 - 3</li><li>-26 - 9 - 4 - 2 - 3</li><li>-35 - 4 - 2 - 3</li><li>-39 - 2 - 3</li><li>-41 - 3</li><li>-44</li></ol></div>";

solArr.sol4 = "<div dir=\"ltr\"><ol class=\"margin_left\"><li>(2 + 3) + 5 + (4 + (2 * 2 + 5) - 2) + 3 * 3</li><li>() + 5 + () + 3 * 3</li><li>() + 5 + () + 9</li><ol class=\"margin_left\"><li>2 +3</li><li>5</li></ol><li>5 + 5 + () + 9</li><li>10 + () + 9</li><ol class=\"margin_left\"><li>4 + () - 2</li><ol class=\"margin_left\"><li>2 * 2 + 5</li><li>4 + 5</li><li>9</li></ol><li>4 + 9 - 2</li> <li>13 - 2</li> <li>11</li></ol><li>10 + 11 + 9</li><li>21 + 9</li><li>30</li></ol></div>";

solArr.sol5 = "<div dir=\"ltr\"><ol class=\"margin_left\"><li>5 % 2 % 5</li><li>1 % 5</li><li>1</li></ol></div>";

solArr.sol6 = "<div dir=\"ltr\"><ol class=\"margin_left\"><li>5 * 3 % 4 * 1 % 6</li><li>15 % 4 * 1 % 6</li><li>3 * 1 % 6</li><li>3 % 6</li><li>3</li></ol></div>";

solArr.sol7 = "<div dir=\"ltr\"><table><tr><td> --- </td><td> לא חוקי </td></tr><tr><td> ______ </td><td> חוקי </td></tr><tr><td> 0_ </td><td> לא חוקי </td></tr><tr><td> a_a </td><td> חוקי </td></tr><tr><td> a1321 </td><td> חוקי </td></tr><tr><td> ab 12 </td><td> לא חוקי </td></tr><tr><td> var </td><td> לא חוקי </td></tr></table></div>";

solArr.sol8 = "<div dir=\"ltr\"><ol class=\"margin_left\"><li>var x, y, z</li><li>z = x = 2 * 2 + 3 + ( 4 + 5 ) + ( x = 3 ) * ( y = 2 )</li><li>z = x = 2 * 2 + 3 + () + () * ()</li><li>z = x = 4 + 3 + () + () * ()</li><ol><li>x = 3</li><li>3//x == 3</li></ol><ol><li>y = 2</li><li>2//y == 2</li></ol><li>z = x = 4 + 3 + () + 3 * 2</li><li>z = x = 4 + 3 + () + 5</li><li>z = x = 7 + () + 5</li><ol><li>4 + 5</li><li>9</li></ol><li>z = x = 7 + 9 + 5</li><li>z = x = 16 + 5</li><li>z = x = 21</li><li>z = 21//x == 21</li><li>21//z == 21</li></ol></div>";

solArr.sol9 = "<div dir=\"ltr\"><ol class=\"margin_left\"><li>x = ( x = y = z = ( 2 * 5 ) + 3 + 2 % 2 ) % ( z = 2 - 1 * 3 )</li><li>x = () % ()</li><ol><li>x = y = z = () + 3 + 2 % 2</li><li>x = y = z = () + 3 + 0</li><li>x = y = z = () + 3</li><ol><li>2 * 5</li><li>10</li></ol><li>x = y = z = 10 + 3</li><li>x = y = z = 13</li><li>x = y = 13 //z == 13</li><li>x = 13 //y == 13</li><li>13 //x == 13</li></ol><li>x = 13 % ()</li><ol><li>z = 2 - 1 * 3</li><li>z = 2 - 3</li><li>z = -1</li><li>-1 //z == -1</li></ol><li>x = 13 % -1</li><li>x = 0</li><li>0 //x == 0</li></ol></div>";

function reveal(pId){
    if(pId == 'all_sol'){
        for(var x in solArr){
            document.getElementById(x).innerHTML = "<button class=\"button100\" onclick=\"cover('" + x + "');\">הסתר</button>" + solArr[x];
        }
        document.getElementById(pId).innerHTML = "<button class=\"button100\" onclick=\"cover('" + pId + "');\">הסתר את כל הפתרונות</button>";
    }
    else {
        document.getElementById(pId).innerHTML = "<button class=\"button100\" onclick=\"cover('" + pId + "');\">הסתר</button>" + solArr[pId];
    }   
}


function cover(pId){
    if(pId == "all_sol"){
        for(var x in solArr){
            document.getElementById(x).innerHTML = "<button class=\"button100\" onclick=\"reveal('" + x + "');\">הצג</button>";
        }
        document.getElementById(pId).innerHTML = "<button class=\"button100\" onclick=\"reveal('" + pId + "');\">הצג את כל הפתרונות</button>";
    }
    else{
        document.getElementById(pId).innerHTML = "<button class=\"button100\" onclick=\"reveal('" + pId + "');\">הצג</button>";
    }
}
4

1 回答 1

0

呃,很多东西在 IE6 或 7 上都不起作用。我建议你放弃对它们的支持。连微软都不支持了!但是,如果您真的需要继续执行此操作,请使用 jQuery,它应该可以解决您的问题(如果使用正确)

于 2012-08-11T02:24:12.613 回答