Firefox addon 将xul元素插入浏览器中,使其随之滚动

Firefox addon 将xul元素插入浏览器中,使其随之滚动,firefox-addon,xul,Firefox Addon,Xul,我正在尝试将xul元素插入gBrowser.selectedBrowser元素,以便该xul元素与文档节点一起滚动 我使用此代码创建并添加了一个框: var win = Services.wm.getMostRecentWindow('navigator:browser'); var panel = win.document.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul','box')

我正在尝试将xul元素插入gBrowser.selectedBrowser元素,以便该xul元素与文档节点一起滚动

我使用此代码创建并添加了一个框:

var win = Services.wm.getMostRecentWindow('navigator:browser');
var panel = win.document.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul','box');
var props = {
    style: 'width:300px;height:100px;background-color:red;'
}
for (var p in props) {
    panel.setAttribute(p, props[p]);
}

gBrowser.selectedBrowser.appendChild(panel);
问题是这个盒子到处都看不见。但是,它在dom检查中:


正如上面评论中所述,问题在于
元素不呈现其内容,类似于

您可以选择在框中滚动内容: a) 通过滚动事件上的javascript重新定位方框
b) 构建框的HTML等价物,并将其直接注入到内容中。如果页面内容不可信,则必须考虑安全性考虑,因为它可以操作您的ADDON使用的DOM。

尝试将其添加到浏览器元素之外,而不是在其内部。浏览器的行为类似于iframe,它可能不会呈现其子元素。感谢@the8472我尝试过这样做,但它不会随文档滚动:(您必须通过javascript手动滚动它。否则您必须将其作为匿名节点插入文档本身。啊,这是一个好主意,我认为文档中的一个节点不起作用。因此,如果它是匿名的,我们可以将xul放入html文档中?呃,不,我认为这不起作用,因为xul不再被允许在内容中,只有所以你要么通过JS把东西对齐,要么直接注入内容