首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印预览xulrunner

打印预览xulrunner
EN

Stack Overflow用户
提问于 2013-05-07 15:24:35
回答 1查看 636关注 0票数 0

所以我在xulrunner中打开打印预览时遇到了这个问题。我打开打印预览,但无法获得导航工具栏。这是创建工具栏的位置PrintUtils.js中的代码:

代码语言:javascript
复制
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";

然后它会这样做:

代码语言:javascript
复制
var navToolbox = this._callback.getNavToolb
    navToolbox.parentNode.insertBefore(printPreviewTB, browser);

我提供了navToolbox,这是插入工具栏但不显示的位置。正如我所说的,打印预览可以完美地打开,页面格式化,一切都可以,但没有工具栏。

有人知道为什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-13 15:48:01

好吧,我找到了解决方案,如果有人感兴趣的话。

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

使用getNavToolbox,您可以将引用传递到工具栏(占位符),该工具栏是您想要放置标准导航工具栏(带有打印按钮、缩放等)的位置。

我已经完成了所有这些操作,但您必须绑定到该工具栏,如下所示:

代码语言:javascript
复制
toolbar.style.MozBinding = url('chrome://global/content/printPreviewBindings.xml#printpreviewtoolbar')";

我在onEnter函数中执行此操作。

但我在使用PrintUtils.jsenterPrintPreview函数时也遇到了问题。在这部分代码中:

代码语言:javascript
复制
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,如下所示:

代码语言:javascript
复制
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;
        }

现在一切都正常了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16413457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档