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

Javascript 错误“undefined”为空或不是Internet Explorer中的对象,javascript,internet-explorer,magento,Javascript,Internet Explorer,Magento,在我的magento代码中有一个文件。 文件名-header.phtml 我得到了一个错误,比如“undefined”为null或者不是对象 如果我从IE本身调试该页面,它将从var hashIndex=frameId.indexOf中中断代码;从下面的代码 function getFrameId() { var qs = parseQueryString(window.location.href); var frameId = qs["frameId"]; var h

在我的magento代码中有一个文件。 文件名-header.phtml

我得到了一个错误,比如“undefined”为null或者不是对象

如果我从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;
}

“undefined”为null或不是对象意味着调用任何方法的java脚本对象为null或不支持该特定方法的值


在这种情况下,var frameId=qs[frameId];我认为这返回了null,您能看到qs包含什么吗?如果有任何与frameid键相关的值,

'undefined'为null或不是一个对象,则表示您在其上调用任何方法的java脚本对象为null或不支持该特定方法的值

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

 console.debug(qs); 
在firefox或chrome中,并检查该对象。您不仅可以确认对象中是否有frameId属性,还可以检查该对象的所有内容,并可能在不同的对象键中找到要查找的信息。

试试看

 console.debug(qs); 

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

IE不支持indexOf。您需要编写自己的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;
  }; 

IE不支持indexOf。您需要编写自己的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;
  }; 

在上述行中,尝试查看frameId的值,我担心它是空的。frameId似乎没有被分配字符串,但可能是未定义的。qs的价值是什么?应该是什么?parseQueryString做什么?它应该返回什么?alertqs;->返回[object]alertframeId;->返回未定义,然后打开错误框。指数;根本不执行。在上述行中,尝试查看frameId的值,我担心它是空的。frameId似乎没有分配字符串,但可能没有定义。qs的价值是什么?应该是什么?parseQueryString做什么?它应该返回什么?alertqs;->返回[object]alertframeId;->返回未定义,然后打开错误框。指数;根本不执行。alertqs;->返回[object]alertframeId;->返回未定义,然后打开错误框。指数;根本不执行。更正这意味着qs是一个对象,但frameid不是该数组中的对象,可能是您可以使用任何调试器查看所需内容,您是否在某个位置托管了此站点,以便我们可以查找并尝试帮助您是的,只是检查了,这是相同的问题没有名为frameid的元素,但我注意到一个令人困惑的事实,窗口的url是,这意味着没有任何名称frameId,这就是为什么它没有BIEN的原因populated@dayana你能在我可以写信息的地方加入聊天吗如果你没有任何问题,可以给我你的雅虎ID吗。bcoz我无权与您聊天…alertqs;->返回[object]alertframeId;->返回未定义,然后打开错误框。指数;根本不执行。更正这意味着qs是一个对象,但frameid不是该数组中的对象,可能是您可以使用任何调试器查看所需内容,您是否在某个位置托管了此站点,以便我们可以查找并尝试帮助您是的,只是检查了,这是相同的问题没有名为frameid的元素,但我注意到一个令人困惑的事实,窗口的url是,这意味着没有任何名称frameId,这就是为什么它没有BIEN的原因populated@dayana你能在我可以写信息的地方加入聊天吗如果你没有任何问题,可以给我你的雅虎ID吗。我没有权利和你聊天…真是太棒了!谢谢!接得好!谢谢!