在我的magento代码中有1个文件。 文件名 - 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;
}
答案 0 :(得分:3)
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;
};
答案 1 :(得分:1)
'undefined'为null或不是对象意味着您调用任何方法的java脚本对象为null或不支持该特定方法的值。
在这种情况下var frameId = qs["frameId"];
我认为这返回null,你能看到qs包含什么以及是否有与frameid key相关的任何值
答案 2 :(得分:0)
尝试
console.debug(qs);
在firefox或chrome中检查该对象。您不仅会确认对象中是否有frameId属性,而且还能够检查该对象的所有内容,并且可能会在不同的对象键中找到您要查找的信息。