Javascript变量在IE中未定义,直到控制台显示
Javascript variable undefined in IE until console displayed
我有一小段我正在做的模板项目的代码。有三个独立的按钮,指向三个不同的位置。为了使内容提供者更容易,我让这些按钮调用最小例程来加载下一页。
代码如下:
/* 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'未定义
位置信息(第43行,字符13)指向"窗口"。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
}
}
尝试设置
window.location.href
而不是window.location.
来源:http://www.webdeveloper.com/forum/showthread.php?105181-Difference-between-window.location-and-window.location.href
始终在使用变量之前定义它们,明确(表达意图)是一种良好的实践,
所以像这样定义你的变量
var prevURL = 'http://google.com';
var nextURL = 'http://msn.com';
var manURL = 'http://stackoverflow.com';
您可以尝试使用
window.location.href
参考这篇文章
建议:为我们创建一个jsfiddle.net,以便我们可以轻松地指导您
- Meteor js-控制台显示'未定义'即使返回结果
- 我的镀铬扩展程序没有't向控制台显示错误,但它显示日志
- 网络视图控制台显示安卓< 4.0 上的错误 |(JVectorMap)
- JavaScript输入不显示值,但控制台显示它有它
- 从控制台显示的数据属性值,但不使用脚本显示
- OOOjavascript:object self-reference返回undefined,但控制台显示它存在
- chrome控制台显示带有摘要身份验证的密码
- Chrome控制台显示未捕获类型错误:无法读取属性'启动'的未定义
- setTimeout不工作.控制台显示未定义latLng
- 控制台显示数组未定义
- 幻灯片停止工作控制台显示没有相关错误?但是这个无关
- 参数检查为空/未定义,尽管控制台显示值
- 无法用Jquery在Chrome控制台显示输出
- 自定义JavaScript异常不会在Google Chrome's控制台显示其消息
- 如何让chrome的控制台显示其动态更改的名称函数
- 检查文件是否存在,但防止在控制台显示404错误
- Chrome和ie的控制台显示'top'是'undefined',但是Safari和Fi
- 为什么控制台显示对象内容时,对象显示为未定义
- Javascript变量在IE中未定义,直到控制台显示
- 当我尝试使用ajax时,chrome的控制台显示“资源加载失败”