在JS,JQ或Angular中打印一个远程页面

时间:2015-04-22 15:29:27

标签: javascript jquery html angularjs printing

我有必须打印的页面,但是当我启动打印时,预览很难看,我无法选择和修改我想要的元素(我只想打印几个元素,而我只隐藏其他元素)用于印刷)。

我没有成功用更少的东西(@media print),所以我制作了一个模板,并在其中注入了我想要打印的元素(使用AngularJS)。问题是原始页面类似于http://example.com/id/page-name/?tab=media。但是我在我的脚本中添加了一个捕获打印事件的监听器,并将用户重定向到http://example.com/id/page-name/?tab=media&print=true

然后超时启动打印脚本(window.print()),当用户离开打印页面时,脚本会将其重定向到http://example.com/id/page-name/?tab=media

问题是它会关闭/打开很多窗口,对用户来说可能会感到不舒服。 我认为我的解决方案很奇怪而且很尴尬,但我没有发现任何其他事情......

那么你有一个打印远程页面的解决方案,它不会产生大量的关闭/打开框架吗?

例如,当我在Ctrl+Phttp://example.com/id/page-name/?tab=media时,会打印http://example.com/id/page-name/?tab=media&print=true页面,而不是原始页面?

类似于document.location.href="http://example.com/id/page-name/?tab=media&print=true".print();print('http://example.com/id/page-name/?tab=media&print=true');

我希望有可能!

1 个答案:

答案 0 :(得分:1)

你可以从这个问题angularJS UI tab print selected contend from tab中得到一些想法,并创建像

这样的打印功能
  $scope.print = function (divName) {
    var printContents = document.getElementById(divName).innerHTML;
    var popupWin = window.open('', '_blank', 'width=800,height=700');
    popupWin.document.open()
    popupWin.document.write('<html><head><link rel="stylesheet" type="text/css" href="style.css" /></head><body onload="window.print()">' + printContents + '</html>');
    popupWin.document.close();
}