页面刷新后,ExternalInterface无法在IE中工作
|
我在IE中有一种奇怪的情况,当我点击“刷新”后,JS无法使用ExternalInterface调用Flash。我知道电影正在加载,并且执行“ 0”的代码似乎已完成,没有任何错误
以下是复制步骤的摘要:
打开IE并首次加载影片,ExternalInterface回调方法可用于JavaScript。
如果单击刷新,则回调方法不可用,并且出现错误“ 1”。
如果我清除缓存并刷新页面,它们将再次可用。
如果我然后在没有清除我的缓存的情况下再次点击刷新,则它们不可用。
如果我关闭浏览器并重新打开,它们将再次可用。
之前我已经遇到过这种情况,并且我很确定下载和实例化swf所需的额外延迟是允许ExternalInterface正确设置的原因。我之前解决此问题的方法是在swf \ url的末尾添加一个随机数,这样它就不会从缓存中使用,但这不是真正的解决方案。
有谁知道如何解决这个问题?
编辑:
我还应该提到,刷新后,\'ExternalInterface.available \'为\'true \',但是\'ExternalInterface.objectId \'为\'null \'。
我尝试将对象
id
的值随机化,并嵌入name
和容器div的id,在每种情况下,ExternalInterface.objectId
仍为null
。
更多信息:
我看不到插入电影的方式会有什么不同,但是我想我会确保其中包含代码。我的电影不受“单击激活”问题的影响,在这种情况下,我不想使用SWFObject,因为在HTML5音频不可用的情况下,Flash电影是一种后备方式。
var docContainer = document.createElement(\'div\');
docContainer.innerHTML = \'<object \'
+ \'classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" \'
+ \'codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0\" \'
+ \'id=\"mp3player\" \'
+ \'width=\"300\" \'
+ \'height=\"500\">\'
+ \'<param name=\"allowScriptAccess\" value=\"always\" />\'
+ \'<param name=\"movie\" value=\"mp3player.swf\" />\'
+ \'<param name=\"quality\" value=\"high\" />\'
+ \'<param name=\"bgcolor\" value=\"#ffffff\" />\'
+ \'<embed \'
+\'src=\"mp3player.swf\" \'
+ \'quality=\"high\" \'
+ \'bgcolor=\"#ffffff\" \'
+ \'width=\"300\" \'
+ \'height=\"500\" \'
+ \'swLiveConnect=\"true\" \'
+ \'name=\"mp3player\" \'
+ \'id=\"mp3player\" \'
+ \'allowScriptAccess=\"always\" \'
+ \'type=\"application/x-shockwave-flash\" \'
+ \'pluginspage=\"http://www.adobe.com/go/getflashplayer\" />\'
+ \'</object>\';
document.body.appendChild(docContainer);
没有找到相关结果
已邀请:
3 个回复
寿柬窟年
事件解决了问题,然后在其中注册了我的回调。像这样:
这将使播放器等待,直到可以可靠地添加回调为止,然后调用名为
的javascript函数来表明已准备好使用它。
贸会
同样,添加以下元标记以确保不缓存您的html文件: SWF文件- 如果要从主SWF文件加载SWF文件,则必须应用相同的逻辑: var cachecontrol:String = Math.floor(Math.random()* 9999).toString(); loader.load(new URLRequest(\“ movie.swf?nocache = \” + cachecontrol))); 这是解决方案的来源: http://www.emanuelz.com.mx/blog/cache-control-tips-for-flash-120 注意:您无需执行上述操作。
藐刚