首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数作为IE9中的函数参数错误

函数作为IE9中的函数参数错误
EN

Stack Overflow用户
提问于 2011-11-29 23:14:42
回答 1查看 337关注 0票数 0

我有一个函数,如果被调用,它会包含一个js文件,并使用来自js文件的对象。问题出在IE9上。IE9给我一个错误'swfobject‘是未定义的。所有其他浏览器都可以正常工作。这些函数包括:

代码语言:javascript
复制
function checkFlash(ver,cond){
  includeJS(context+'/scripts/swfobject.js', function () { 
    var playerVersion = swfobject.getFlashPlayerVersion().major; 
    if (playerVersion < ver) {
      cond();
    }
  }); 
}

function includeJS(p_file, callback) {
  var v_js  = document.createElement('script');
  v_js.type = 'text/javascript';
  v_js.src = p_file;
  v_js.onreadystatechange = callback; 
  v_js.onload = callback; 
  document.getElementsByTagName('head')[0].appendChild(v_js);
}

有什么方法可以绕过这个错误吗?顺便说一句,您可以查看this thread以了解有关函数的更多信息。

我非常确信它不是swfobject.js文件,因为它在其他方面工作得很好,但无论如何,它都是here is the file

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-29 23:33:54

我读到过onreadystatechange可以在实际加载数据之前触发。谷歌了一下,找到了http://msdn.microsoft.com/en-us/library/ms536957(v=vs.85).aspx,在这个例子中是:

代码语言:javascript
复制
document.onreadystatechange=fnStartInit;
function fnStartInit()
{
   if (document.readyState=="complete")
   {
      // Finish initialization.
   }
}

但它也适用于脚本节点。试试像这样的东西:

代码语言:javascript
复制
v_js.onreadystatechange = function(){
    if (this.readyState=="complete"){
        callback();//or callback(window.event);
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8313153

复制
相关文章

相似问题

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