错误“undefined”为空或不是 Internet Explorer 中的对象

Error 'undefined' is null or not an object in Internet Explorer

本文关键字:Internet Explorer 对象 undefined 错误      更新时间:2023-09-26

在我的magento代码中,有1个文件。文件名 - 标头.phtml

我收到错误,例如"未定义"为空或不是对象。

如果我从IE本身调试该页面,那么它将从以下代码中破坏"var hashIndex = frameId.indexOf('#');"的代码。

function getFrameId()
{
    var qs = parseQueryString(window.location.href);
    var frameId = qs["frameId"];
    var hashIndex = frameId.indexOf('#');
    if (hashIndex > -1)
    {
        frameId = frameId.substring(0, hashIndex);
    }
    return frameId;
}

indexOf 在 IE 中不受支持。您将需要编写自己的 indexOf 函数。例如:

//Implement indexOf. (IE/mshta doesn't have it)
if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function (obj, fromIndex) {
    if (fromIndex == null) {
        fromIndex = 0;
    } else if (fromIndex < 0) {
        fromIndex = Math.max(0, this.length + fromIndex);
    }
    for (var i = fromIndex, j = this.length; i < j; i++) {
        if (this[i] === obj)
            return i;
    }
    return -1;
  }; 

'undefined' 为 null 或不是对象意味着您在 上调用任何方法的 Java 脚本对象要么为 null,要么是不支持该特定方法的值。

在这种情况下var frameId = qs["frameId"];我认为这返回了 null,您能否看到 QS 包含的内容以及是否有任何与 frameid 键关联的值

尝试

 console.debug(qs); 

在 Firefox 或 Chrome 中并检查该对象。您不仅可以确认对象中是否具有 frameId 属性,还可以检查该对象的所有内容,并可能在不同的对象键中找到要查找的信息。