Ajax代码同时支持Internet Explorer 和非 Microsoft游览器
/* Create a new XMLHttpRequest object to talk to the Web server */
var xmlHttp = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
@end @*/
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
现在先不管那些注释掉的奇怪符号,如 @cc_on,这是特殊的 JavaScript 编译器命令,将在下一期针对 XMLHttpRequest 的文章中详细讨论。这段代码的核心分为三步:
1.建立一个变量 xmlHttp 来引用即将创建的 XMLHttpRequest 对象。
2.尝试在 Microsoft 浏览器中创建该对象:
◦尝试使用 Msxml2.XMLHTTP 对象创建它。
◦如果失败,再尝试 Microsoft.XMLHTTP 对象。
3.如果仍然没有建立 xmlHttp,则以非 Microsoft 的方式创建该对象。
创建XMLHttpRequest对象实例
var xmlHttp = false;
function createXmlHttpRequest()
{
if(window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(ee)
{
xmlHttp = false;
}
}
}
else if(window.XMLHttpRequest)
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
xmlHttp = false;
}
}
}
分享到:
相关推荐
### 支持多种浏览器创建XMLHttpRequest对象代码 随着Web技术的发展与演进,跨浏览器兼容性一直是前端开发者面临的重要挑战之一。特别是在处理Ajax请求时,如何优雅地在不同浏览器(尤其是IE与其他现代浏览器)间...
如果浏览器支持 ActiveX 对象,就可以使用 ActiveX 来创建 XMLHttpRequest 对象。否则,就要使用本地 JavaScript 对象技术来创建。 在创建 XMLHttpRequest 对象实例时,需要注意浏览器的差异。不同的浏览器对 ...
不同的浏览器对`XMLHTTPRequest`的支持方式略有不同,主要分为两种:IE浏览器和其他非IE浏览器(如Firefox、Chrome等)。 ##### IE浏览器 对于IE浏览器,可以使用`ActiveXObject`来创建`XMLHTTPRequest`对象。 ```...
同时,XMLHttpRequest支持多种事件,如`onload`、`onerror`、`onprogress`等,用于在不同阶段执行相应的处理函数。 在实际应用中,我们通常会使用Promise或者async/await语法来改善异步操作的可读性,例如: ```...
由于XMLHttpRequest不是一个W3C标准,所以可以采用多种方法使用JavaScript来创建XMLHttpRequest的实例。 Internet Explorer把XMLHttpRequest实现为一个ActiveX对象,其他浏览器(如Firefox、Safari和Opera)把它...
一、创建XMLHttpRequest对象 在JavaScript中,XMLHttpRequest对象可以通过`new XMLHttpRequest()`来创建。虽然名称中包含XML,但实际传输的数据格式并不局限于XML,可以是JSON、文本、HTML等。 二、理解...
然而,不同浏览器在实现XMLHttpRequest对象时存在差异,这就需要开发者编写兼容多种浏览器的代码。 #### XMLHTTPRequest对象的创建 在IE浏览器中,XMLHTTPRequest对象是通过ActiveX对象来创建的。在IE的不同版本中...
但是,由于不同浏览器之间的实现差异,如何创建一个兼容所有浏览器的XMLHttpRequest对象成为了开发过程中的一个挑战。 为了兼容包括IE在内的不同浏览器,我们需要编写能够检测浏览器类型并实例化相应对象的...
// 非IE浏览器创建XMLHttpRequest对象 if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } // IE浏览器创建XMLHttpRequest对象 else if (window.ActiveXObject) { try { xmlhttp = new ...
ActiveX是一种由微软公司提出的技术,它允许在用户的计算机上运行由网络提供的软件组件,这在IE浏览器中被用来创建XMLHttpRequest对象。需要注意的是,ActiveX控件通常需要用户在浏览器中启用,而且它可能会引起安全...
- **现代浏览器**(如 Firefox, Opera, Safari, IE7.0, IE8.0 及以上版本)都支持通过 `window.XMLHttpRequest` 来创建 `XMLHttpRequest` 对象。 - **IE6.0 和 IE5.5** 这些旧版浏览器则需要使用 `window....
XMLHttpRequest对象创建后,通过`open()`方法指定请求类型(GET、POST等)、URL以及是否异步执行。接着,使用`send()`方法发送请求。当请求完成时,会触发`onreadystatechange`事件,通过`readyState`属性和`status`...
在上述代码中,我们可以看到使用了多种方法来创建 XMLHttpRequest 对象,以便在不同浏览器中实现 Ajax 功能。其中, `new ActiveXObject("Msxml2.XMLHTTP")` 和 `new ActiveXObject("Microsoft.XMLHTTP")` 是用于在 ...
在JavaScript中,创建XMLHttpRequest对象通常通过`new XMLHttpRequest()`来完成。这个对象提供了一系列方法和属性,用于管理请求和响应。 3. **XMLHttpRequest的方法** - `open()`: 初始化一个请求,参数包括请求...
在IE浏览器中,ActiveXObject是创建XMLHTTP对象的唯一方式,而在其他浏览器中,XMLHttpRequest对象是创建XMLHTTP对象的唯一方式。 在这个方法中,我们使用了try-catch语句来捕捉可能出现的错误,并在catch语句中...
使用跨浏览器测试工具如BrowserStack、Sauce Labs或虚拟机,确保在多种浏览器和设备上测试代码。同时,开发者工具(如Chrome DevTools、Firefox Developer Tools)也有助于定位和修复兼容性问题。 总之,解决...
通过使用不同的方法创建XMLHttpRequest对象,以及针对不同浏览器的行为调整代码,确保了在多种浏览器上的稳定运行。例如,对于不支持XMLHttpRequest的浏览器,Gmail会提示用户启用JavaScript和ActiveX控件。 总结...
总的来说,创建一个支持多种浏览器的上传控件涉及HTML、JavaScript以及可能的服务器端代码。通过理解文件API、事件监听、Ajax上传以及利用现有的库,我们可以构建一个健壮且跨平台的文件上传解决方案。
1. 首先,尝试使用现代浏览器的方式来创建XMLHttpRequest对象。 2. 如果上述方式失败(即window.XMLHttpRequest属性不存在),则尝试使用IE浏览器的方式来创建。 3. 在IE浏览器的方式中,首先尝试创建最新版的...