javascript - 为什么这个 JS 在 IE 中不能正常执行?

标签 javascript internet-explorer runtime-error

这适用于 所有 浏览器,但 IE 除外。我已经审查了我知道 IE 可以正确阅读的代码,因此您不会不知所措。 为什么IE说我的函数不存在?

错误:

SCRIPT5009: 'switchStyles' is undefined 
test.php, line 180 character 21

HTML:

025:    <SCRIPT TYPE="text/javascript" SRC="/_js/styleSwitch2.js"><!-- Style Switching Scripts --></SCRIPT>
...
180:    <SELECT ONCHANGE="return switchStyles(this);">
181:        <OPTION VALUE="/_css/default.css">Select a style!</OPTION>
182:        <OPTGROUP LABEL="Skin Group 1">
183:            <OPTION VALUE="/_css/alt1-1.css">Alt 1.1</OPTION>
184:            <OPTION VALUE="/_css/alt1-2.css">Alt 1.2</OPTION>
185:            <OPTION VALUE="/_css/alt1-3.css">Alt 1.3</OPTION>
186:        </OPTGROUP>
187:        <OPTGROUP LABEL="Skin Group 1">
188:            <OPTION VALUE="/_css/alt2-1.css">Alt 2.1</OPTION>
189:            <OPTION VALUE="/_css/alt2-2.css">Alt 2.2</OPTION>
190:        </OPTGROUP>
191:    </SELECT>

JS:

var sheetElement = document.getElementById("_switchSheet");
var backupSheetElement = document.getElementById("_switchSheetBackup");

sheetElement.disabled = false;
if (backupSheetElement)
    backupSheetElement.disabled = false;
else
    //warn

var useCookies = true;
const COOKIE_NAME = "cookiename";


function switchStyles(selectElement)
{
    if (sheetElement == null && (sheetElement = document.getElementById("_switchSheet")) == null)
        //fail
    switchStyleTo(selectElement.value);
}

function switchStyleTo(newSheet)
{
    sheetElement.href = (newSheet == backupSheetElement.href) ? null : newSheet;

    setCookie(newSheet);
}



function setUseCookies(shouldUseCookies)
{
    useCookies = shouldUseCookies;
}

function setCookie(cookieContent)
{
    //works
}

function getCookie()
{
    //works
}

function setStyleFromCookie()
{
    var cookie = getCookie();
    if (cookie.length > 0)
        switchStyleTo(cookie);
    else
        //fail
}

最佳答案

因为这一行是 IE 中的一个错误,阻止了其余代码的运行。

const COOKIE_NAME = "cookiename";

const 更改为 var

或:

try {
    const COOKIE_NAME = "cookiename"; 
} catch (e) {
    var COOKIE_NAME = "cookiename";
}

关于javascript - 为什么这个 JS 在 IE 中不能正常执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15649910/

相关文章:

compiler-errors - 应用突然崩溃Roku

java - 在 Runtime.getRuntime().exec(...) 中传递文件名时出错

javascript - 如何在 AngularJS 应用程序中预览 PDF 文件?

javascript - 在我自己的 js 模板系统/引擎中使用 jquery 选择

php - 没有设置 HttpOnly 标志的 session Cookie

javascript - get 操作符和 defineProperty 之间有什么有效的区别吗?

html - IE 上的网站看起来不正确

django - 使用 Django 设置缓存来解决 "page has expired"IE 问题

asp.net - 启动调试时阻止 Visual Studio 启动新的浏览器窗口?

java.lang.RuntimeException : Unable to start activity: com. google.android.apps.messaging.ui.conversationlist.ShareIntentActivity - 找不到资源