我使用chrome.app.window.create API创建了新的子窗口,以便使用window.print()打印窗口的内容。但我的问题是我如何传递html中的内容。任何人都可以帮助我。
答案 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已经采取了另一种方式,但如果能够将这个问题标记为答案,对于其他人来说这会很好。