Javascript 在AngularJS中打印div而不打开新窗口
我需要使用Javascript 在AngularJS中打印div而不打开新窗口,javascript,angularjs,Javascript,Angularjs,我需要使用按钮打印div的内容。我已经找到了出路,用AngularJS做了 我的问题是,每当调用print时,它也会打开一个新窗口;它不应该打开它 有没有办法阻止新窗户的打开 代码如下: JS: $scope.printControl = function(id) { var printContents = document.getElementById(id).innerHTML; var popupWin = $window.open('', '_blank', 'width
按钮打印div
的内容。我已经找到了出路,用AngularJS做了
我的问题是,每当调用print时,它也会打开一个新窗口;它不应该打开它
有没有办法阻止新窗户的打开
代码如下:
JS:
$scope.printControl = function(id) {
var printContents = document.getElementById(id).innerHTML;
var popupWin = $window.open('', '_blank', 'width=800,height=800');
popupWin.document.open();
popupWin.document.write('<html><body onload="window.print()">' + printContents + '</body></html>');
popupWin.document.close();
};
<div id="printDiv">
This div needs to be printed
</div>
<button ng-click="printControl('printDiv')">
Print
</button>
$scope.printControl=函数(id){
var printContents=document.getElementById(id).innerHTML;
var popupWin=$window.open('''.'空白','宽度=800,高度=800');
popupWin.document.open();
popupWin.document.write(“”+打印内容+“”);
popupWin.document.close();
};
HTML:
$scope.printControl = function(id) {
var printContents = document.getElementById(id).innerHTML;
var popupWin = $window.open('', '_blank', 'width=800,height=800');
popupWin.document.open();
popupWin.document.write('<html><body onload="window.print()">' + printContents + '</body></html>');
popupWin.document.close();
};
<div id="printDiv">
This div needs to be printed
</div>
<button ng-click="printControl('printDiv')">
Print
</button>
这个div需要打印
印刷品
我只想做:
$scope.printControl = function(id) {
$scope.visible = true;
$timeout(function(){
$window.print();
$timeout(function(){
$scope.visible = false;
}, 0);
}, 0);
};
并通过以下方式修改按钮:
<button ng-click="printControl('printDiv')" ng-hide="visible">
其思想是在单击按钮打印时隐藏不想在dom中打印的元素,然后立即重新显示它们
链接到已更新。实际上,您已经在JS中定义了打开一个新窗口($window.open(“,”u blank“…)。您可以将“\u blank”替换为“\u self”。这将在同一窗口中打开打印提示,而无需离开该窗口。但我相信您实际上根本无法拒绝此提示,因为出于安全原因,用户必须对打印本身进行最后控制。@Martin执行此操作后,我能够在窗口本身中看到div
内容,这是我不想要的。Th整个html
正在被打印。只有div
应该被打印。恐怕这是不打开新窗口的唯一方法,但我们希望有另一种解决方案。