2013-07-18 2 views
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();       
         }      
        ); 
       } 
}); 
+1

Вы хотите добавить несколько идентификаторов с одинаковым значением, поэтому HTML будет недействительным и JQuery не распознает список элементов, но только первый соответствует (так первый IFrame). –

+0

@LightStyle, вы имеете в виду изменить его с id = "printIFrame" на class =? – gotguts

+1

Да, это решение. В противном случае вы можете использовать 'iframe [name = 'printIFrame']' как селектор jQuery для выбора всех iframes. Но класс, безусловно, лучший выбор. –

ответ

2

Вы даете каждому элементу один и тот же идентификатор и имя, а затем фокусирование печать и т.д. Это только кажется неправильным, и делать это немного по-другому будет запускать несколько диалогов печати в некоторых браузерах (печатая 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); 
    } 
}); 

FIDDLE

+0

Это фактически работает. Единственная проблема заключается в том, когда я увеличиваю счет, единственными печатаемыми страницами являются те, у которых 1-й номер и последний номер. Есть идеи? – gotguts

+0

@gotguts - похоже, что нужно закрыть, отредактировал ответ! – adeneo

+0

что, кажется, ничего не меняет – gotguts

Смежные вопросы