0

当有人单击打印时,我希望此 iframe 多次打印。这是我到目前为止所拥有的,但它只打印一次。有没有人有什么建议?提前致谢。

$("#printing").on('click',function(){
                var printYesNo = 1;     
                alert("hi");    
                for(var count = 1; count < 3; count++) {
                    $('body').append('<iframe src="flyer.php?userNow='+count+'" id="printIFrame" name="printIFrame"></iframe>');
                    $('#printIFrame').bind('load', 
                        function() {                                
                            window.frames['printIFrame'].focus(); 
                            window.frames['printIFrame'].print();                           
                        }                       
                    );
                }
});
4

1 回答 1

2

您为每个元素提供相同的 ID 和名称,然后集中打印等。这似乎是错误的,并且稍有不同会在某些浏览器中触发多个打印对话框(打印 iFrame 不是跨浏览器):

$("#printing").on('click', function () {
    for (var count = 1; count < 13; count++) {
        (function(k) {
            $('<iframe />', {
                id   : 'printIFrame' + k,
                name : 'printIFrame' + k,
                on   : {
                    load: function() {
                        this.contentWindow.focus();
                        this.contentWindow.print();
                    }
                },
                src  : 'flyer.php?userNow=' + k,
            }).appendTo('body');
        })(count);
    }
});

小提琴

于 2013-07-18T23:01:11.617 回答