如何使用chrome打包应用程序在子窗口中编写内容?

时间:2014-08-25 13:55:43

标签: javascript html5 gwt google-chrome-app

我使用chrome.app.window.create API创建了新的子窗口,以便使用window.print()打印窗口的内容。但我的问题是我如何传递html中的内容。任何人都可以帮助我。

1 个答案:

答案 0 :(得分:4)

可以通过window.document访问新窗口的DOM。

这里的窗口不是窗口传递给chrome.app.window.create回调函数(称之为createdWindow),而是createdWindow.contentWindow

因此,您正在寻找的DOM是createdWindow.contentWindow.document。根据需要修改DOM,然后调用createdWindow.contentWindow.print()

更新 - 这里的代码遵循我上面所说的:

window.onload = function() {
  chrome.app.window.create('printwindow.html', {},
    function (createdWindow) {
      var win = createdWindow.contentWindow;
      win.onload = function () {
        win.document.querySelector('#content').innerHTML =
          '<p>Here is something to print.</p>';
        win.print();
      }
    }
  );
};

printwindow.html是:

<!DOCTYPE html>
<html>
  <head>
    <title>WindowToPrint</title>
  </head>
  <body>
    <div id="content"></div>
  </body>
</html>

我已经测试了这段代码,但它确实有用。我知道OP已经采取了另一种方式,但如果能够将这个问题标记为答案,对于其他人来说这会很好。