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

Javascript IE9中的函数作为函数参数错误,javascript,internet-explorer-9,Javascript,Internet Explorer 9,我有一个函数,如果被调用,它将包含一个js文件并使用js文件中的一个对象。问题在于IE9。IE9给了我一个错误,即“swfobject”未定义。所有其他浏览器都可以正常工作。功能包括: function checkFlash(ver,cond){ includeJS(context+'/scripts/swfobject.js', function () { var playerVersion = swfobject.getFlashPlayerVersion().major;

我有一个函数,如果被调用,它将包含一个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);
}
功能检查闪存(版本、状态){
includeJS(context+'/scripts/swfobject.js',函数(){
var playervision=swfobject.getFlashPlayervision().major;
如果(播放服务器版本<版本){
cond();
}
}); 
}
函数includeJS(p_文件,回调){
var v_js=document.createElement('script');
v_js.type='text/javascript';
v_js.src=p_文件;
v_js.onreadystatechange=回调;
v_js.onload=回调;
document.getElementsByTagName('head')[0].appendChild(v_js);
}
有没有办法绕过那个错误?顺便说一句,您可以查看更多关于函数的信息


我很有信心它不是swfobject.js文件,因为它在其他方面工作正常,但在任何情况下,。

我读到,
onreadystatechange
可以在实际加载数据之前触发。谷歌搜索并访问,示例中是:

document.onreadystatechange=fnStartInit;
function fnStartInit()
{
   if (document.readyState=="complete")
   {
      // Finish initialization.
   }
}
但它也适用于脚本节点。尝试以下方法:

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

犯错误swfobject变量应该来自哪里?它位于包含的swfobject.js文件中。正如我提到的,它在除IE9之外的所有其他浏览器中都可以正常工作。因此,听起来你是说,这段代码可以正常工作,因为它成功地加载了脚本,但另一个文件中的
swfobject
没有出现。如果这是正确的,那么听起来问题似乎出现在其他代码中,而不是此代码中。不,这将在除IE9之外的所有浏览器中成功返回PlayServerVersion的值。如果我在IE9的源代码中包含该文件,它就可以工作,因此函数声明中的IE9在SWFOObject完全加载之前调用它。你也可以执行
callback.call(this)
,以保留原始语义。我使用了上面评论中发布的链接Fred,但想法相同。谢谢