我有一个函数,如果被调用,包括一个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);
}
有什么方法可以解决这个错误吗?顺便说一句,您可以看到this thread以获取有关这些功能的更多信息。
我非常有信心它不是swfobject.js文件,因为它可以正常工作,但无论如何,here is the file。
答案 0 :(得分:2)
我已经读过onreadystatechange
可以在实际加载数据之前触发。用Google搜索并到达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);
}
}