簡體   English   中英

通過window.open打開窗口,並在加載時使用window.print打印它

[英]Open window by window.open and print it with window.print on load

我有一些像

var windowObject = window.open('','windowObject','arguments...');
windowObject.document.write("<html><body onload="alert(1);window.print();alert(2);"><div>some html</div></body></html>");

問題是,除了window.print事件(在firefox上,它正在工作)之外,所有其他東西都可以工作。

有解決方法嗎?

在此先感謝Gaurav

這是一個引號問題: onload=之后的雙引號結束了寫入文檔的字符串。 將onload報價更改為單引號。 您還需要添加對文檔的close()方法的調用:

var windowObject = window.open('','windowObject','arguments...');
windowObject.document.write("<html><body onload='alert(1);window.print();alert(2);'><div>some html</div></body></html>");
windowObject.document.close();

在此行中,您似乎正在嘗試使用嵌套的雙引號:

windowObject.document.write("<html><body onload="alert(1);window.print();alert(2);"><div>some html</div></body></html>");

您更可能想做:

windowObject.document.write('<html><body onload="alert(1);window.print();alert(2);"><div>some html</div></body></html>');

Chrome瀏覽器不允許我們在新打開的窗口/標簽中進行打印。 您可以通過添加一個新的HTML文件(例如<body onload="window.print()"><div>Some html</div></body>並將其代碼替換為var windowObject = window.open('<path_to_your_new_html>','windowObject','arguments...');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM