首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMLHttpRequest.onreadystatechange对addEventListener

XMLHttpRequest.onreadystatechange对addEventListener
EN

Stack Overflow用户
提问于 2016-01-20 16:50:27
回答 3查看 9.4K关注 0票数 8

阅读XMLHttpRequest,以便在Google扩展中使用,我遇到了一个问题。

MDN指定使用 XMLHttpRequest.addEventListener谷歌使用 XMLHttpRequest.onreadystatechange在他们的例子中。

,当向Google脚本发出GET请求时,这两种方法之间有偏好吗?我是异步Javascript的新手,在此之前,我一直在研究GAS。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-20 19:28:04

首选是浏览器兼容性。来自MSN上的XMLHttpRequest API文档。

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#Properties

所有浏览器都支持onreadystatechange作为XMLHttpRequest实例的属性。

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#Events

最近的浏览器,包括火狐,除了将XMLHttpRequest属性设置为处理程序函数之外,还支持通过标准的addEventListener API侦听on*事件。

由于Apps脚本Web应用程序将很快只支持现代浏览器(因为本地模式和模拟模式被削弱),您可以使用这两种浏览器。

票数 10
EN

Stack Overflow用户

发布于 2016-01-22 15:31:50

onreadystatechange火太大了,您可能不需要听它。使用装货 (所有情况包括失败/中止)、加载 (成功)、errorabort事件。

有关详细信息,请参阅XMLHttpRequest

票数 4
EN

Stack Overflow用户

发布于 2016-03-15 12:25:01

此外,如果您控制了浏览器类型/版本,则可以使用传递给onreadystatechange函数的对象进行填充:

代码语言:javascript
复制
var oReq = new XMLHttpRequest();
// This part for modern browsers
oReq.addEventListener("progress", updateProgress, false);
oReq.addEventListener("load", transferComplete, false);
oReq.addEventListener("error", transferFailed, false);
oReq.addEventListener("abort", transferCanceled, false);
// This part for old ones
oReq.onreadystatechange = functionSwitch;

其中functionSwitch将调用正确的函数(将在updateProgress、transferComplete、.之间进行选择)所以要避免双重密码。

我已经看到人们使用Windows,而且可能任何addEventListener都不能工作。看看:addEventListener兼容性。我没有通过addEventListener找到xmlhttprequest事件的具体列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34905828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档