簡體   English   中英

打印預覽xulrunner

[英]Print preview 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,那是插入工具欄但未顯示的地方。 就像我說的那樣,打印預覽可以完美打開,頁面可以格式化,並且所有內容都沒有工具欄。

有人知道為什么嗎?

好的,如果有人感興趣,我會找到溶液。

因此,當enternig printPreview時,您必須傳遞具有5個功能的對象: getSourceBrowsergetPrintPreviewBrowsergetNavToolboxonEnteronExit

使用getNavToolbox您可以將引用傳遞到要放置標准導航工具欄(帶有打印按鈕,縮放和其他按鈕)的工具欄(占位符)。

我已完成所有操作,但您必須綁定到該工具欄,如下所示:

toolbar.style.MozBinding = url('chrome://global/content/printPreviewBindings.xml#printpreviewtoolbar')";

我在onEnter函數中執行此操作。

但是我也對enterPrintPreview函數有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解決此問題,如下所示:

var printPreviewTB = document.getElementById("print-preview-toolbar");
        if (printPreviewTB) {
          var tmptoolbar = this._callback.getNavToolbox();            
          tmptoolbar.updateToolbar();
          var browser = this._callback.getPrintPreviewBrowser();
          browser.collapsed = false;
          browser.contentWindow.focus();
          return;
        }

現在一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM