我在IE10中遇到了一些奇怪的行为。我需要使用ActiveXObject在本地获取一些文件(通过file://协议)。
为什么这在IE10中有效:
function createXhr() {
return new window.ActiveXObject( "Microsoft.XMLHTTP" );
}但不是这样的:
function createXhr() {
inMpage = true;
if (inMpage == false) {
var a = new window.XMLHttpRequest();
} else {
var a = new window.ActiveXObject( "Microsoft.XMLHTTP" );
}
return a;
}发布于 2015-07-16 21:33:13
因为所有现代浏览器(IE7+、火狐、Chrome、Safari和Opera)都有一个内置的XMLHttpRequest对象。
var a = new window.XMLHttpRequest(); // use this for IE10并且您的代码正在执行else case,它与旧版本的Internet Explorer (IE5和IE6)兼容,而不是与IE10兼容。
var a = new window.ActiveXObject( "Microsoft.XMLHTTP" );要处理所有现代浏览器,包括IE5和IE6,请检查浏览器是否支持XMLHttpRequest对象。如果有,则创建一个XMLHttpRequest对象;如果没有,则创建一个ActiveXObject
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}https://stackoverflow.com/questions/31033150
复制相似问题