IE8获取对象预期错误 - 发生在var关键字上,声明XMLHttpRequest对象

时间:2014-08-06 15:47:18

标签: javascript html internet-explorer-8

首先,我以前从未遇到过这个问题,我对此感到困惑。我已经搜索过了,但是这个对象需要'错误指的是很多不同的东西。我只是在IE8中收到此错误,而不是在Chrome或Firefox中,但我没有尝试任何以前或更高版本的IE。

以下是我的代码的开头:

<html>
<head>
    <title>Company Acronym List</title>

    <script language="JavaScript" type="text/javascript">

    var ACRONYM_CSV_LIST = '/acronyms/acronyms.csv';
    var globalAcronymList = [];

    console.log ('Initiating script');

    function xmlGet ( url, callback ) {

        console.log ('Inside the Get method');

        var xmlhttp = new XMLHttpRequest();

        xmlhttp.onreadystatechange = function () {
            if ( xmlhttp.readyState==4 && xmlhttp.status==200 ) {
                callback( xmlhttp.responseText );
            }
        }
        xmlhttp.open("GET", url, true);
        xmlhttp.send(  );
    }

    function commit () {

        console.log('Commit started');

        var acronymSpan = document.getElementById('acronym-span');

        acronymSpan.style.color = '#eee';

        initLoadAcronymCsvList ();
    }

    function initLoadAcronymCsvList () {
        console.log ('Starting the XML Get');
        xmlGet( ACRONYM_CSV_LIST, acronymCsvListCallback );
    }

我收到错误:预期对象&#39;消息在var xmlhttp = ...行。事实上,IE8指向了&#39; v&#39;在var关键字中作为错误。 为什么!?

为了理智,我甚至添加了一些控制台跟踪。 commit()函数放在<body onload="commit();">标记中,因此当页面加载时,我会看到以下控制台跟踪:

Initiating script
Commit started
Starting the XML Get
Inside the Get method

然后热潮!只需使用var关键字,我就会收到IE8错误。我试过改变变量的名字......什么都没有!

我检查了分号和所有内容,从上面的代码片段中,您应该能够看到从执行开始到失败的代码流。我甚至把脚本分成了自己独立的文件。我可以参考解决这个问题吗?

1 个答案:

答案 0 :(得分:-1)

如果你试试这个怎么说?

if (typeof window.XMLHttpRequest === 'function') 
     alert ('ok');
else
     alert ('not ok');

如果它说&#34;不好&#34;然后试试这段代码

if (typeof window.XMLHttpRequest === 'function') 
   var xmlhttp = new XMLHttpRequest();
else
   var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');