从单独的XUL文件引用id

时间:2011-09-24 22:52:14

标签: javascript xul

如果我有两个不同的XUL文件,那么一个javascript中是否可以引用另一个中定义的XUL id?我想在一个单独的xul文件中使用javascript来编辑另一个xUL中的XUL。

2 个答案:

答案 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(主浏览器窗口)注册了一个叠加层。