我正在开发一个必须与 IE8 兼容的 ASP.NET 应用程序。在所有其他浏览器中它工作完美,但在 IE8 中它给了我错误
Object doesn't support this property or method
并且崩溃。我在互联网上进行了一些搜索,发现了类似这样的问题及其解决方案(例如 this one 或 this one ),但这些解决方案都没有改变我的情况。错误发生在谷歌地图初始化的 initialize
回调方法中(这应该不会产生影响,因为错误似乎发生在变量定义行上),代码如下:
function initialize(sender, isFrontPageInitialLoadParam) {
if (isFrontPageInitialLoadParam !== false) {
isFrontPageInitialLoad = true;
mapCompletelyLoaded = false;
} else {
isFrontPageInitialLoad = false;
}
(功能当然继续,但是在这段代码中出现了错误。)
此代码的生产(缩小)版本如下:
function initialize(n, t) {
var i, r;
t !== !1 ? (isFrontPageInitialLoad = !0, mapCompletelyLoaded = !1) : isFrontPageInitialLoad = !1,
并且错误发生在 t !== !1
处,这相当于 if (isFrontPageInitialLoadParam !== false)
。
从该错误的其他解决方案来看,似乎该错误通常是由于隐式声明的全局变量而发生的,但我认为这在我的情况下不是一个问题(isFrontPageInitialLoad
和 mapCompletelyLoaded
是在全局范围内声明的变量)。
我是否遗漏了一些明显的东西,或者 IE8 只是没有像往常一样正常运行?
最佳答案
所以我在 friend 的帮助下解决了这个问题。
这个变量检查似乎是问题所在,所以我开始在代码中的不同位置添加警报,以查看它走了多远,可惜:错误发生在完全不同的行上。
看来我还有剩下的
console.dir("<snip>")
在 JavaScript 中调用,看起来 IE8 不支持 console.dir()
调用,但是如果满足以下条件,仍然支持 console.log()
调用开发者工具已开放(感谢@Reinder Wit)。我删除了这条线,它又起作用了。
如果您遇到这样的错误,请在代码的各个行中发出一些警报,并查看代码在崩溃之前会进行到什么程度。 IE8 中的 JavaScript 错误日志控制台似乎不知道代码中发生错误的正确部分。
关于javascript - IE8 上的 JavaScript 对象不支持此属性或方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23559707/