"无效的呼叫对象"在IE 11中

时间:2016-11-15 11:36:08

标签: javascript internet-explorer

我有一个代码可以在chrome和mozzila中运行而没有任何错误,并且有一个IE 11可以实现此错误。这是代码:

  var products;

                function search()
                {

                    var tag;
                    var flag = 0;
                    var searchword = document.getElementById("search-bar").value;

                    for(var i=0; i< products.length; i++)
                    {

                        tag = products[i].getElementsByTagName("itemnumber");
                    if( searchword.toUpperCase() == tag[0].innerHTML.toUpperCase() )
                    {

                        // do something
}

                    }
                }



                $(window).load(function() {

                    var xhttp = new XMLHttpRequest();
                    xhttp.onreadystatechange = function() {
                        if (this.readyState == 4 && this.status == 200) {
                            myFunction(this);
                        }
                    };
                    xhttp.open("GET", "products.xml", true);
                    xhttp.send();

                    function myFunction(xml) {
                        var xmlDoc = xml.responseXML;

                        products = xmlDoc.getElementsByTagName("product");


                    }
                });

这段代码给了我这个错误:

Unable to get property 'toUpperCase' of undefined or null reference

表示searchword ???

如果我要加上这个

if(products.length === 0)
{
   // do something
}

就在function search();

的开头

它会在Invalid Calling Object ??

给我products.length错误

为什么,为什么,我不明白......?

此外,当我在控制台中尝试alert(products.length);时,会弹出Invalid Calling object

我真的不知道为什么会发生这种情况,因为它在chrome和mozzila中都运行良好。如果有人知道这是为什么以及如何解决,请回答。

P.S。此代码放在脚本标记的head中。按钮点击时搜索调用。

0 个答案:

没有答案