IE11 脚本加载不起作用(有时)
IE11 script onload not working (sometimes)
我目前正在开发一个数据密集型 Web 应用程序,该应用程序经常与外部 API 通信并在返回时检索 JSONP 数据。该脚本依赖于一个名为 head.js v1.0.3 的库。http://headjs.com/实现这一目标。但是,我注意到在IE 11中由于某种原因,脚本的onload事件有时会(但并非总是)在脚本实际加载到浏览器中之前触发。无论是否使用 head.js,该行为都是可证明的。 或者,我可以创建一个脚本元素,其中设置了 onload 事件来捕获返回的数据。有时有效,有时无效。更奇怪的是,一旦第一次发生,它似乎在浏览器会话期间不断发生。
有什么解决方法吗?
下面是一些示例代码:
//somejson.js
/*
window["queryResult"] = {blah:'blah'}
*/
function loadScript() {
head.load("/somejson.js", afterScriptLoad)
}
function afterScriptLoad() {
var result = queryResult
//Throws error because window.queryResult is sometimes undefined
}
经过一些研究,似乎解决此错误的唯一方法是修改 API,以便一旦初始化包含 JSONP 的变量,脚本本身就会触发回调。不幸的是,如果他们无权修改正在使用的任何 API,这将不能作为其他人的解决方案,但它确实为我解决了问题。
//somejson.js
/*
window["queryResult"] = {blah:'blah'}; scriptCallback()
*/
function loadScript(callback) {
var c = new afterScriptLoad(callback)
window["scriptCallback"] = c
head.load("/somejson.js", c)
}
function afterScriptLoad(callback) {
var retrieved = false
return function () {
if (!retrieved) {
retrieved = true
callback(queryResult)
}
}
}
function myCallback(response) {
//do something
}
相关文章:
- Rails和jQuery有时不起作用
- Mutilpe JS文件包含在另一个js文件中有时不起作用
- 脚本 SRC 归因有时在.php文件中不起作用
- IE11 脚本加载不起作用(有时)
- NodeJS 断点有时不起作用
- jQuery插件在Chrome上不起作用(有时).在火狐中效果很好
- 返回假有时不起作用
- 将对象推送到数组有时不起作用
- Javascript正则表达式替换有时不起作用
- Youtube API-SeekTo有时不会'不起作用
- javascript newwindow.document.getElementById有时不会'不起作用
- Javascript无法在android网络视图上持续工作.有时它有效,大多数时候它不起作用;t
- ASP.NET页面,加载谷歌图表和threejs有时不起作用
- HTML5 localStorage &同源策略:有时起作用,有时不起作用
- JavaScript for Bootstrap下拉菜单有时起作用,有时不起作用
- 为什么Array.push(element)有时不起作用
- 浏览器滚动条没有'使用slimwoll时有时不起作用
- CakePHP&JQuery,location.reload有时不起作用
- asp.net中的按钮没有'有时不起作用
- ContentEditable HTML5 localStorage有时不起作用