首先,我以前从未遇到过这个问题,对此我感到困惑。我已经搜索过,但是这个“预期对象”错误指的是很多不同的事情。我只在 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/