我想知道是否可以使用 javascript 打印位于服务器中的 txt 文件。我注意到 window.print() 只是打开当前网页的打印对话框
user1400718
问问题
46884 次
5 回答
12
您只能为用户打开打印对话框,这是应该的。如果您只想打印文本文档,有几种方法可以触发它的打印对话框。它们需要遵循同源策略(您的 HTML 和 TXT 文件需要在同一个域中)。
最简单的方法是使用文本文件打开一个弹出窗口,并在返回的窗口句柄上调用 print:
w = window.open('text.txt');
w.print();
如果您希望用户预览文本文件,您可以使用 iframe 代替:
我建议将 JS 排除在 HTML 之外,这只是举例
<iframe id="textfile" src="text.txt"></iframe>
<button onclick="print()">Print</button>
<script type="text/javascript">
function print() {
var iframe = document.getElementById('textfile');
iframe.contentWindow.print();
}
</script>
于 2012-06-27T14:37:45.570 回答
3
JQuery 选项
<body>
<div id="txtdiv"></div>
<script type="text/javascript">
$('#txtdiv').load('trial.txt', function()
{
window.print(); //prints when text is loaded
});
</script>
</body>
于 2012-06-27T14:45:13.840 回答
1
如果您只是不想删除页面的内容并从文件中打印一些文本,您可以在此处执行此操作:
<body>
....some tags....
<script type="text/javascript">
// or onclick function
$.load('test.txt', function( printContent ){
history.pushState( printContent, 'Print title', '/print_page' );
document.write( printContent );
if( window.print() ){
document.location = '/back_page/';
// or history.go(-1);
} else {
document.location = '/history/';
}
});
</script>
于 2015-02-08T11:02:38.060 回答
1
您是正确的,window.print()
只是打开了当前网页的打印对话框。
我建议您编写 JavaScript 代码来打开一个新窗口,将文本加载到该窗口中,然后print()
在该窗口上调用该函数。
于 2012-06-27T14:24:55.690 回答
-3
您可以通过创建 Web 服务来做到这一点。
创建一个 Web 服务,并在 Web 服务中进行打印。
从 JavaScript 调用 Web 服务。
如果您想知道如何使用 web 服务进行打印,stackoverflow 中有一个线程可能会有所帮助。不要只看问题,也要浏览答案。
于 2012-06-27T14:23:25.547 回答