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

标签 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 );
    }

我在 var xmlhttp = ... 处收到“错误:需要对象”消息线。事实上,IE8 直接指向 var 中的“v”。关键字作为错误。 为什么!?

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

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

然后繁荣!只需使用 var关键字 我收到 IE8 错误。我也尝试更改变量的名称...但什么也没有!

我检查了分号和所有内容,从上面的代码片段中,您应该能够看到从执行开始到失败的代码流程。我什至将脚本分成了自己的单独文件。有一个已知问题我可以引用来解决这个问题吗?

最佳答案

如果你尝试这个,它会说什么?

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

如果它说“不行”,那么尝试这个代码

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

关于javascript - IE8 获取对象预期错误 - 发生在声明 XMLHttpRequest 对象的 var 关键字上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25164768/

相关文章:

javascript - 持久化对象之间的 MongoDB 原型(prototype)继承

html - 分屏设计布局,一半可滚动内容有巨大的留白区域,无法去除留白

html - 在可调整大小的 div 中垂直居中输入

html - 如何将这些 div 放入 div 中以占据整个水平宽度

javascript - 尝试查看 IFRAME 的父级时如何解决访问被拒绝的问题

javascript - 同时设置 StreetView PanoramaId 和 POV 的正确方法?

javascript - 使用缓动功能滚动

javascript - Requirejs 错误的依赖顺序

css - 无法让某些 CSS 代码在 IE 8 上的 Drupal 7 站点中工作

javascript - 如何使用 Javascript 在 chrome 中禁用保存密码气泡?