【问题标题】:printing support on chrome packaged appschrome 打包应用程序的打印支持
【发布时间】:2013-01-04 13:26:35
【问题描述】:

我似乎在 chrome 打包应用程序中找不到任何 window.print() 支持的示例 - 有人可以发布示例吗?

我正在使用这个

function clickHandler(e) {
  window.print();
}
document.addEventListener('DOMContentLoaded', function () {
  document.querySelector('button').addEventListener('click', clickHandler);
});

来自“Hello World!”示例平台应用程序,但我似乎无法正常工作。

我应该使用特殊的权限设置吗?

谢谢!

【问题讨论】:

  • 作为健全性检查,页面上是否有 any JavaScript 工作?您能否将您的点击处理程序更改为 console.log("works"); window.print(); 以确保确定?
  • 我猜弹出窗口(如 window.print())被 chrome 扩展阻止了,我尝试了一个示例但无法解决!

标签: google-chrome printing google-chrome-extension package google-chrome-app


【解决方案1】:

是的,window.print() 可以在 Chrome 应用程序中使用。您可以在official samples repo 中找到示例。

就像在应用程序的任何 DOM 窗口中调用 window.print() 一样简单:

  // prints the content of the current window:
  window.print();

  // prints the content of another AppWindow:
  anotherAppWindow.contentWindow.print()

AppWindow 是 Chrome Apps 对象,它封装并扩展了具有应用功能的实际 DOM 窗口。该对象可以通过以下任一方式获得:

  1. chrome.app.window.create的回调中保存参数

  2. 在所需窗口上下文中运行的任何代码上调用chrome.app.window.current()

【讨论】:

  • 感谢您的回复和建议。
  • 我认为要完成这项工作,文件必须由用户明确选择,或者必须位于用户之前明确选择的目录中。使用应用程序内部的文件 (chrome.storage.local) 将不起作用,因为浏览器将无法访问该文件。
  • 是的,感谢您提出这个问题。从 Chrome 应用程序打印现在可以完美运行!甚至还有一个示例:github.com/GoogleChrome/chrome-app-samples/tree/master/printing
  • 静默打印怎么样?
  • 目前不可能,@FandiSusanto,除非您使用 chrome.usb 或 chrome.sockets API 直接与打印机通信。
猜你喜欢
  • 2013-08-22
  • 1970-01-01
  • 2012-12-20
  • 1970-01-01
  • 1970-01-01
  • 2014-09-10
  • 2015-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多