在使用 swfobject.embedSwf 将动态加载的 SWF 嵌入到 IE 6、7、8 中的 HTML 表单中时,我遇到了无穷无尽的问题。
针对该问题提出的所有手动解决方法都涉及从窗口对象创建对 Object DOM 元素的引用。例如:
window[id] = document.getElementById(id);
其中 id 是 swf 对象 dom 元素的 id。就我而言,我无法设置window[id]
为 swf 对象 ID,因为它尚未创建!
swfobject 中导致 javascript 错误的行是:
el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
当 SWF 电影设置其 Javascript 外部接口时,它会尝试访问 window[id]。因为这不存在,所以它失败了。
如果我应用上面提到的解决方法并填充window[id]
被 embedSwf 替换的 DOM 元素,它仍然会失败,因为它试图在 div DOM 元素而不是对象 DOM 元素上调用 Flash 特定方法。
我发现这个问题自 Flash 8 和 IE6 以来一直没有得到解决,这让我感到很惊讶!