Я только что провел 45 минут на этом "SIMPLE" проблемы, пытаясь получить его так, как я хотел, чтобы он работал.
У меня было изображение внутри тега img, динамически генерируемого плагином , который мне пришлось печатать. Я хотел, чтобы он печатался в другом окне, а затем закрывал окно. Все это должно было произойти после того, как пользователь нажал кнопку внутри плагина jQuery Grid
, внутри диалогового окна jQuery-UI
, а также добавленного к нему диалогового расширителя jQuery-UI
.
Я скорректировал все ответы, пока я, наконец, не придумал это, может быть, это может помочь кому-то.
w = window.open(document.getElementById("UB-canvas").src);
w.onload = function() { w.print(); }
w.onbeforeunload = setTimeout(function() { w.close(); },500);
w.onafterprint = setTimeout(function() { w.close(); },500);
setTimeout
не только для чертовых и хихиканья, это единственный способ, которым я нашел Firefox 42
ударю эти функции. Он просто пропустил бы функции .close()
до тех пор, пока я не добавлю к нему точку останова, тогда она отлично работала. Поэтому я предполагаю, что он создал эти экземпляры окон, прежде чем он сможет применить функцию события onbeforeload и функции события onafterprint или что-то еще.
Прохладный. Но что, если я хочу, чтобы другое изображение показывало, что инициирует всплывающее окно? – andrew
Ознакомьтесь со стилями CSS для печати. Вы можете в основном иметь изображение, скрытое на экране, а затем видимое для вида печати. –