gpt4 book ai didi

javascript - 从 javascript 打印 iframe 在终端服务器上的 IE 中不起作用

转载 作者:行者123 更新时间:2023-12-03 07:37:17 26 4
gpt4 key购买 nike

我正在尝试通过 JavaScript 将弹出对话框内的 html 发送到打印机。我开始使用来自 MDN 的代码:Print an external page without opening it

这在 Chrome 和 IE 10 及更高版本中都非常有效。但是,当通过远程桌面在 IE 中运行相同的代码时,它不起作用。我也没有收到任何错误消息。

所以我更改了代码并使用了 jQuery,现在打印对话框显示为想要的/预期的。现在的问题是,在 IE 中不仅打印 iFrame 内容。现在页面上的所有内容都已打印。在 Chrome 中,我得到了预期的打印结果(仅限 iFrame 内容)。这是什么 IE 无法到达这里:

function printFrame(frameId, contentToPrint) {
var doc = $('#' + frameId)[0].contentWindow.document;
var $body = $('body', doc);

$body.html(contentToPrint);

setTimeout(function() {
$('#' + frameId)[0].contentWindow.focus();
$('#' + frameId)[0].contentWindow.print();
}, 1000);
};

$scope.printDetails = function() {
var oHiddFrame = document.createElement("iframe");
oHiddFrame.id = "hiddenFrame";
oHiddFrame.style.visibility = "hidden";
oHiddFrame.style.position = "fixed";
oHiddFrame.style.right = "0";
oHiddFrame.style.bottom = "0";
oHiddFrame.target = "_blank";

document.body.appendChild(oHiddFrame);
var contentToPrint = document.getElementById('eventDetails').innerHTML;
printFrame("hiddenFrame", contentToPrint);
};

问题是iframe的body没有获得焦点吗?我希望你们中的一些人做过类似的事情,并且可以通过查看我的脚本代码来告诉我缺少什么......

如您所见,代码是由调用 printDetails() 函数的 ng-click 触发的。很抱歉,我没有在上面的代码片段中提供完整的代码。

最佳答案

你可以试试这个插件Jquery 打印区域:https://github.com/RitsC/PrintArea

我已经在 IE9 中进行了测试,运行良好。

演示:https://github.com/RitsC/PrintArea

关于javascript - 从 javascript 打印 iframe 在终端服务器上的 IE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35555806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com