所以我在xulrunner中打开打印预览时遇到了这个问题。 我打开打印预览但我无法获得导航工具栏。 这是PrintUtils.js中创建工具栏的代码:
var XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
printPreviewTB = document.createElementNS(XUL_NS, "toolbar");
printPreviewTB.setAttribute("PrintPreview", true);
printPreviewTB.id = "print-preview-toolbar";
printPreviewTB.className = "toolbar-primary";
之后它会这样做:
var navToolbox = this._callback.getNavToolb
navToolbox.parentNode.insertBefore(printPreviewTB, browser);
我正在提供navToolbox,这是插入工具栏的地方,但它没有显示。正如我所说,打印预览打开完美,页面格式化,一切都没有工具栏。
任何人都知道为什么?
答案 0 :(得分:0)
好的,如果有人有兴趣,我发现了洗液。
因此,当enternig printPreview必须传递一个包含5个函数的对象时:
getSourceBrowser
,getPrintPreviewBrowser
,getNavToolbox
,onEnter
和onExit
。
使用getNavToolbox
,您可以将工具(占位符)的引用传递到要放置标准导航工具栏的位置(使用打印按钮,缩放等)。
我已经完成了所有这些,但您必须绑定到该工具栏,如下所示:
toolbar.style.MozBinding = url('chrome://global/content/printPreviewBindings.xml#printpreviewtoolbar')";
我在onEnter函数中这样做。
但我对enterPrintPreview
的{{1}}函数也有疑问。
在这部分代码中:
PrintUtils.js
var printPreviewTB = document.getElementById("print-preview-toolbar");
if (printPreviewTB) {
printPreviewTB.updateToolbar();
tmptoolbar.updateToolbar();
var browser = this._callback.getPrintPreviewBrowser();
browser.collapsed = false;
browser.contentWindow.focus();
return;
}
抛出错误。
我通过获取我在printPreviewTB.updateToolbar();
函数中传递的工具栏的引用,然后在他身上调用getNavToolbox
来修复此问题,如下所示:
updateToolbar
现在一切正常。