如果我有两个不同的XUL文件,那么一个javascript中是否可以引用另一个中定义的XUL id?我想在一个单独的xul文件中使用javascript来编辑另一个xUL中的XUL。
答案 0 :(得分:2)
你可以在XUL文件中引用任何JS文件&它将是相同的如果你想在另一个XUL文件中使用相同的JS文件。
例如:
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="chrome://global/skin/" ?>
<?xml-stylesheet type="text/css"href="chrome://hello/skin/browserOverlay.css" ?>
<!DOCTYPE overlay SYSTEM
"chrome://hello/locale/browserOverlay.dtd">
<overlay id="xulschoolhello-browser-overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript"
src="chrome://hello/content/browserOverlay.js" />
<script type="application/x-javascript" src="chrome://hello/content/javaLoader.js" />
<script type="application/x-javascript" src="chrome://hello/content/window.js" />
</overlay>
如果你想在XUL中使用JS,那么它是可能的,但是在这种情况下你不能将这个JS函数链接到另一个XUL。
在XUL文件中输入:
<script type="application/x-javascript">
<![CDATA[
// your code here
]]>
</script>
我建议单独使用JS文件&amp;您可以将它们链接到任何数量的XUL文件,如上所述。
参考文献:https://developer.mozilla.org/en/Building_an_Extension https://developer.mozilla.org/en/Setting_up_extension_development_environment
答案 1 :(得分:1)
您似乎正在寻找的是XUL overlays。这些叠加层可以是registered in your chrome.manifest
file,并允许对其他XUL文档进行修改。例如,大多数Firefox扩展都为chrome://browser/content/browser.xul
(主浏览器窗口)注册了一个叠加层。