我有一个由浏览器覆盖(ff-overlay.xul)组成的扩展,它通过此代码(来自mozilla扩展生成器)启动侧边栏(ff-sidebar.xul): (在ff- overlay.xul)在XUL组件之间发送数据
<menupopup id="viewSidebarMenu">
<menuitem key="key_openSidebar_testinstallPackage" observes="viewSidebar_testinstallPackage" />
</menupopup>
<keyset id="mainKeyset">
<key id="key_openSidebar_testinstallPackage" command="viewSidebar_testinstallPackage" />
</keyset>
<broadcasterset id="mainBroadcasterSet">
<broadcaster id="viewSidebar_testinstallPackage"
label="&testinstallPackageSidebar.label;"
autoCheck="false"
type="checkbox"
group="sidebar"
sidebarurl="chrome://testinstallPackage/content/ff-sidebar.xul"
sidebartitle="&testinstallPackageSidebar.label;"
oncommand="toggleSidebar('viewSidebar_testinstallPackage');" />
</broadcasterset>
主要覆盖在overlay.js中js代码: (在FF-overlay.xul)
<script src="overlay.js"/>
的边栏XUL有在FF-sidebar.js js代码: (在ff-sidebar.xul)
<script src="ff-sidebar.js"/>
我需要从overlay.js中的一些数据(一个字符串就足够了)送FF-sidebar.js
我试图this,但它没有工作(我不知道如果它可以工作,它应该在主覆盖图和当前页面之间)。
请为我提供一些意思。
Thx =)“例3:使用nsIWindowMediator”的窍门。 – BenoitParis 2010-10-31 18:45:02
@BenoitParis:恩,没有。你不应该使用它。要在同一个窗口中访问侧边栏,您的覆盖代码正在运行,您应该使用“在侧边栏中访问文档”。要以另一种方式工作,您需要“从子窗口访问顶级文档的元素”。无论如何,我希望你理解你的代码最终运行的多个“范围”或“窗口”的概念。 – Nickolay 2010-10-31 18:54:08
真的是一个很好的提示,这帮助我节省了几个小时......谢谢...... – VKGS 2012-11-23 06:00:43