我目前正在尝试制作一个 Firefox 扩展,但我无法弄清楚我的错误是什么。
实际上,我在我的 xul 代码中嵌入了一个 flash 应用程序,以便访问 javascript 代码中的一些 flash 功能。
认为这种东西适用于基本的 html 页面,当我尝试使用我的 xul 代码中的 flash 函数时,我遇到了“TypeError:[flash function] is not a 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+"; ";
}
// ...
}
};