我能够使用以下内容制作工具栏按钮。
<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton id="myextension-button"
class="toolbarbutton-1"
image="chrome://xulschoolhello/skin/favicon.png"
oncommand="XULSchoolChrome.BrowserOverlay.doSomething(event);"
label="label" tooltiptext="tooltip" />
</toolbarpalette>
当我在doSomething函数中调用“document”对象时,我相信它操纵的是XUL DOM,而不是HTML网页。如何在我的函数doSomething中访问HTML网页的内容?感谢
答案 0 :(得分:1)
它肯定在镀铬范围
doSomething = function(event) {
var DOMWindow = event.originalTarget.defaultView; //this should be the chrome window
//however if its not then do var DOMWindow = Services.wm.getMostRecentWindow('navigator:browser'); //make sure to import Services.jsm
var HTMLWindow = DOMWindow.gBrowser.selectedTab.linkedBrowser.contentWindow; //might be _linkedBrowser
}
答案 1 :(得分:1)
或者你可以去:
<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton id="myextension-button"
class="toolbarbutton-1"
image="chrome://xulschoolhello/skin/favicon.png"
oncommand="gBrowser.contentDocument.body.innerHTML='rawr'"
label="label" tooltiptext="tooltip" />
</toolbarpalette>
代替内联oncommand中的窗口,您只需执行gBrowser.contentDocument
或gBrowser.contentWindow
即可访问当前标签中浏览器的DOM。