javascript - 如何使用chrome打包的应用程序在子窗口中写入内容?

标签 javascript html gwt google-chrome-app

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

最佳答案

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

这里的窗口不是传递给 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采取了另一种方式,但如果可以将其标记为答案,那么对于其他人看这个问题来说会很好。

关于javascript - 如何使用chrome打包的应用程序在子窗口中写入内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25487556/

相关文章:

javascript - 为什么我的空白文本节点没有插入?

javascript - 数据集属性 - 获取/设置正确的驼峰命名法

javascript - ionic 切换值保持不变

html - CSS更改默认基色关键字的值

html - 流体网格和媒体查询之间的区别

html - 卡片内的下拉菜单渗入下一列卡片列

java - Java/GWT 客户端中的常量 : static final vs Enums

java - 尝试创建演示者时出现辅助注入(inject)错误

javascript - 如何将商店中对象的动态属性用作 v 模型?

Javascript 到 html 替换标签不起作用