angularjs 新窗口打印页面,打印不关闭,其他操作就不能,代码如下

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="utf-8">  
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">  
<title>打印测试</title>  
<script src="https://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script> 
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
    <button ng-click ="printOpen()">打印</button>
    <button ng-click ="test();">测试功能</button>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.firstName= "John";
    $scope.lastName= "Doe";
    $scope.printOpen = function(){
        $scope.oPop = window.open('', '_blank', 'width='+ (window.screen.availWidth)+',height='+(window.screen.availHeight)+ ',top=0,left=0');  
        var str = '<!DOCTYPE html>'  
            str +='<html>'  
            str +='<head>'  
            str +='<meta charset="utf-8">'  
            str +='<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">'  
            str+='<style>';  
            str+='#oDiv2 div{width: 100px;height: 100px;border:1px solid #c50000;}';  
            str+='</style>';  
            str +='</head>'  
            str +='<body onload="window.print()">'  
            str +="<div id='oDiv2'><div>bbb</div></div>";  
            str +='</body>'  
            str +='</html>'  
        $scope.oPop.document.write(str);
        $scope.oPop.document.close();
    }
    $scope.test = function(){
        console.log('ffffff')
    }
});
</script>

</body>

</html>

阅读 4k
1 个回答

我这边测试了,打印的时候新弹出的那个打印窗口就自动关闭了(不用手动去关闭),你要的是这种效果吧

<script>
    var app = angular.module('myApp',[]);
//    app.controller('myCtrl', function($scope) {
//改动在这里,依赖注入$window
    app.controller('myCtrl',['$scope', '$window',function($scope,$window) {
        $scope.firstName= "John";
        $scope.lastName= "Doe";
        $scope.printOpen = function(){
            $scope.oPop = $window.open('', '_blank', 'width='+ (window.screen.availWidth)+',height='+(window.screen.availHeight)+ ',top=0,left=0');
            var str = '<!DOCTYPE html>'
            str +='<html>'
            str +='<head>'
            str +='<meta charset="utf-8">'
            str +='<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">'
            str+='<style>';
            str+='#oDiv2 div{width: 100px;height: 100px;border:1px solid #c50000;}';
            str+='</style>';
            str +='</head>'
            str +='<body onload="window.print()">'
            str +="<div id='oDiv2'><div>bbb</div></div>";
            str +='</body>'
            str +='</html>'

            $scope.oPop.document.write(str);
            $scope.oPop.document.close();
            $scope.oPop.close();
        }
        $scope.test = function(){
            console.log('ffffff')
        }
        //这个下面也记得改哈
         }]);
</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题