[英]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個功能的對象: getSourceBrowser
, getPrintPreviewBrowser
, getNavToolbox
, onEnter
和onExit
。
使用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.