在显示控制台之前,IE 中未定义的 Javascript 变量

标签 javascript internet-explorer variables

我有一小段代码用于我正在处理的模板项目。有三个独立的按钮,指向三个不同的位置。为了让内容提供者更容易,我让这些按钮调用最小例程来加载下一页。

代码如下:

    /* navigation functions here for clarity and ease of editing if needed */
    prevURL    = 'ch0-2.html';
    nextURL    = 'ch2-1.html';
    manURL     = 'ch1-2.html';

    function prevPage() {
       window.location = prevURL; 
    }

    function nextPage() {
        window.location = nextURL;
    }

    function goManager() {
        window.location = manURL;
    }

这在 Firefox 和 Chrome 中完美运行,但在 Internet Explorer 中似乎失败了。

我在 IE (F12) 中打开开发者工具并看到消息:

SCRIPT5009: 'manURL' is undefined

位置信息(第 43 行,字符 13)指向代码的“window.location = manURL”部分。

但是,一旦开发人员工具打开,如果我按 F5 键重新加载页面,该按钮将正常工作,直到我关闭 IE 并重新打开它,它再次无法响应并给出相同的“未定义”错误。

我很困惑。有人有什么想法吗?

更新 我知道变量声明很糟糕,我可以改用 window.location.href。此处相关的是,其他两段代码在所有这些重要方面都是相同的,无论哪种方式都可以完美地工作。

epascarello 让我走上了正确的道路。通过删除所有 console.log 命令,一切都会开始工作。我只是想知道为什么会这样,并且希望能够感谢 epascarello 对我的帮助。

最佳答案

当开发者窗口未打开时,IE 没有控制台命令。所以如果你有它们,代码将不会运行。它会出错。

您可以注释掉这些行或添加一些代码来添加缺少的内容。

if (typeof console === "undefined") {
   console = {
       log : function(){},
       info : function(){},
       error : function(){}
       //add any others you are using
   }
}

关于在显示控制台之前,IE 中未定义的 Javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15255287/

相关文章:

javascript - 这样可以用角色验证用户吗?

javascript - 如何识别输入设备配置为哪只手(左手或右手)

javascript - 为什么我不能在IE8中设置window.onload?

IE 中对象类型的 Javascript 问题

通过 C 程序更改环境变量

javascript - 生成专有的非重复 ID

javascript - 简单 C 编程向上/向下舍入到最接近的 0.5

c# - 这是IE10的BUG吗? ASP .NET MVC3 + HTML5 + IE10 预览

javascript - 使用变量中预设的密码登录系统

Javascript 将变量从 HTML 切换到 Javascript