javascript - IE8 上的 JavaScript 对象不支持此属性或方法

标签 javascript html internet-explorer internet-explorer-8

我正在开发一个必须与 IE8 兼容的 ASP.NET 应用程序。在所有其他浏览器中它工作完美,但在 IE8 中它给了我错误

Object doesn't support this property or method

并且崩溃。我在互联网上进行了一些搜索,发现了类似这样的问题及其解决方案(例如 this onethis 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)

从该错误的其他解决方案来看,似乎该错误通常是由于隐式声明的全局变量而发生的,但我认为这在我的情况下不是一个问题(isFrontPageInitialLoadmapCompletelyLoaded 是在全局范围内声明的变量)。

我是否遗漏了一些明显的东西,或者 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/

相关文章:

html - 有时无法显示对象

html - IE7 不应用字体

javascript - $modal.open 不起作用

javascript - 从 fetch() 中提取 JSON 和 header

javascript - 期望验证器返回 Promise 或 Observable

html - HTML 文件中 Cache-Control 元标记的范围

用于 IE8 或更低版本的 html5

javascript - 如何使用 Javascript 在 Canvas 中单击某个位置?

php - 在动态内容页面中动态添加名称 anchor 标记

jquery - 页面加载滚动至底部