我希望你能帮忙解决问题,并提醒大家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不喜欢修饰。
有人知道这方面的解决方法吗?
更新:
已经指出我可以通过一个新函数和构造函数覆盖整个XMLHttpRequest,然后创建一个类似XMLHttpRequest.js的包装脚本。原型方法要短得多,因此我仍然更喜欢在非IE浏览器中使用它。