IE9中的函数参数错误

Function as a functions parameter error in IE9

本文关键字:参数 错误 函数 IE9      更新时间:2023-09-26

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

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);
}

有办法解决这个错误吗?顺便说一句,你可以在这个线程中看到关于函数的更多信息。

我很有信心它不是swfobject.js文件,因为它工作得很好,否则,但在任何情况下,这里是文件。

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

document.onreadystatechange=fnStartInit;
function fnStartInit()
{
   if (document.readyState=="complete")
   {
      // Finish initialization.
   }
}

但是它也适用于脚本节点。试试这样写:

v_js.onreadystatechange = function(){
    if (this.readyState=="complete"){
        callback();//or callback(window.event);
    }
}