2013-05-07 118 views
0

因此,我在xulrunner中打開打印預覽時遇到此問題。 我打開打印預覽,但我無法獲得導航工具欄。 這是PrintUtils.js在工具欄創建的代碼:打印預覽xulrunner

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

好吧,如果有人感興趣,我會發現菌落。

所以enternig打印預覽時,你必須傳遞一個對象有5個功能: getSourceBrowsergetPrintPreviewBrowsergetNavToolboxonEnteronExit

With getNavToolbox您將要引用的工具欄(佔位符)傳遞到要放置標準導航工具欄(打印按鈕,縮放等)的位置。

我已經做了一切,但你必須綁定到該工具欄,就像這樣:

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

我做的是,在功能的OnEnter。

但我也有問題從PrintUtils.jsenterPrintPreview功能。 在這部分代碼:

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; 
     } 

而現在一切工作正常。