簡體   English   中英

Internet Explorer 8 原型和 XMLHttpRequest

[英]Internet Explorer 8 prototypes and XMLHttpRequest

這部分是對解決方法的請求,部分是為了讓人們知道 Internet Explorer 的原型實現仍然存在錯誤。

以下代碼在 Internet Explorer 上不起作用。

XMLHttpRequest.prototype.old = XMLHttpRequest.prototype.open;
var x = new XMLHttpRequest();
x.old("POST", "test", false);

對於 IE 8 beta 和所有以前的版本,XMLHttpRequest.prototype 屬性從一開始就不存在。 在 IE8 中,它確實存在,但您會收到“無效的過程調用或參數”錯誤。 Internet Explorer 不喜歡裝飾。

有誰知道這個的解決方法?

更新

有人指出,我可以用新的 function 和構造函數覆蓋整個 XMLHttpRequest,然后創建一個包裝腳本 ala XMLHttpRequest。 原型方法要短得多,所以我還是更喜歡將它用於非 IE 瀏覽器。

問題似乎是 IE 8 識別 XMLHttpRequest,但不是 function。 Active X 對象似乎仍然有效。 我沒有測試 window.XMLHtppRequest 的存在,而是測試 window.XMLHtppRequest 的類型。 似乎工作正常。

我將我的獲取請求重新編碼如下:

FG.ajax.getxhr = function(){
var xhr;
if (typeof window.XMLHttpRequest === 'function') {
    xhr  = XMLHttpRequest();
}
else {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
return xhr; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM