打印预览xulrunner

时间:2013-05-07 07:24:35

标签: javascript xul xulrunner

所以我在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,这是插入工具栏的地方,但它没有显示。正如我所说,打印预览打开完美,页面格式化,一切都没有工具栏。

任何人都知道为什么?

1 个答案:

答案 0 :(得分:0)

好的,如果有人有兴趣,我发现了洗液。

因此,当enternig printPreview必须传递一个包含5个函数的对象时: getSourceBrowsergetPrintPreviewBrowsergetNavToolboxonEnteronExit

使用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

现在一切正常。