对象为null或不是Internet Explorer 8中的对象

时间:2013-09-23 08:17:48

标签: jquery internet-explorer-8

我有以下几行代码:

select: function( event, ui ) {
var searchLink = aToolLinks[ui.item.tool];
var params = "";
if (ui.item.id && ui.item.id != "") {
if (ui.item.tool == "FUN") {
params = "ID_INSTRUMENT=" + ui.item.id;
} else {
params = "ID_NOTATION=" + ui.item.id;
}
} else if (ui.item.isin && ui.item.isin != "") {
params = "isin=" + ui.item.isin;
}
if (ui.item.tool && ui.item.tool == "NEW") {
params = "searchString=" + ui.item.term;
}
if (params != "") {
console.log("URL " + searchLink+"&"+params);
window.location.href = searchLink+"&"+params;

在Internet Explorer 8中,我收到错误消息: item.tool为NULL或不是对象

有人知道我怎么解决?

谢谢!

3 个答案:

答案 0 :(得分:0)

这不是解决方案,而是提示并尝试解决您的问题

Start Internet Explorer then:
1. Press the F12 key (Tools, Developer Tools)
2. Hold Down the key "Ctrl" then "R" (Cache, Clear Browser Cache)

答案 1 :(得分:0)

当我的列表有一个尾随逗号时,我看到了这个问题。我认为IE8会对它们产生影响。

我在IE 8中收到错误:

var l = [{id:1, val:"foo"}, {id:2, val:"bar"},];
    for(var i =0; i < l.length; i++){
        l[i].val;
}

如果我删除了最后一个逗号,我就不会在IE 8中收到错误

var l = [{id:1, val:"foo"}, {id:2, val:"bar"}];
    for(var i =0; i < l.length; i++){
        l[i].val;
}

如果ui是您问题中的文字列表,则可能是原因。

答案 2 :(得分:-1)

我知道这已经很老了,但是如果有人再次遇到同样的问题... 就我而言,引发错误的问题实际上是数组超出范围的问题。我试图访问未填充在数组中的索引,或者您未访问的映射或对象。换句话说,这可能意味着DECLAREtool中不是有效的密钥。