我有一个函数,如果被调用,它会包含一个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。
发布于 2011-11-29 23:33:54
我读到过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);
}
}https://stackoverflow.com/questions/8313153
复制相似问题