我正在尝试制作一个firefox扩展程序,但我无法弄清楚我的错误是什么。
Praticaly,我在我的xul代码中嵌入了一个flash应用程序,以便能够访问javascript代码中的一些flash函数。
认为这种东西适用于基本的html页面,当我尝试使用xul代码中的flash函数时,我面临“TypeError:[flash function]不是函数”错误。
我在某种程度上是xul编码的初学者:有人会突出我的错误,我会非常感激。
这是我的xul文件:
<overlay id="extension-overlay" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="overlay.js"/>
<window id="main-window">
<toolbaritem id="extension-fontlist_container" persist="width">
<html:embed hidden="true" wmode="transparent" id="extension-fontlist" height="1px" width="1px" menu="false" src="FontList.swf" allowscriptaccess='always' align='center' flashvars="" type="application/x-shockwave-flash" />
</toolbaritem>
<statusbar id="status-bar">
<statusbarpanel id="my-panel" label="&gathering;" onload="Extension.onMenuItemCommand(event);"/>
</statusbar>
</window>
</overlay>
这是我的javascript代码:
var Extension = {
onMenuItemCommand: function() {
var flashObj = document.getElementById("extension-fontlist");
var fontArr=flashObj.getDeviceFonts();
var font="";
for (var key in fontArr){
var fontName = fontArr[key];
fontName = fontName.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
font+=fontName+"; ";
}
// ...
}
};
答案 0 :(得分:0)
我猜你必须打开flash对象
var flashObj = XPCNativeWrapper.unwrap(document.getElementById("extension-fontlist"));