Mam scenariusz, w którym na mojej stronie robię window.open(), która otwiera kolejne okno, którego onLoad()
wywołuje window.print()
. W tym przepływie rodzic pozostaje niezmieniony, uniemożliwiając kliknięcie dowolnego łącza. Jak mogę uciec z tym problemem?Okno główne zawiesza się, gdy window.open uruchamia print onLoad
Na przykład:
strona HTML, posiada trzy linki: tworzyć, zarządzać i drukowania. Kod javascript dla łącza wydruku jest następująca:
var url = '/actions/print/';
var win = window.open(url,"Title_","resizable=yes,scrollbars=yes,directories=no,titlebar=no,location=no,status=no,menubar=no,width="+width+",height="+height);
teraz, HTML świadczonych przez /actions/print
jest:
<html><body onload="window.print();"> ... Content goes here ...</body></html>
Więc jak widać, klikając na wydruku otworzy się nowe okno i wyzwala drukuj natychmiast. W tym stanie, kiedy wrócę do okna nadrzędnego z trzema łączami i spróbuję kliknąć inne linki, to nie działa i wydaje się zamrożone.
@drew dziękuję. – Sripaul
Możesz spróbować użyć limitu czasu? 'window.setTimeout (function() {window.print();}, 0);' Powiedz mi, czy to działa :) – www139
@Sripaul Więc czy moja odpowiedź pomogła ci w jakikolwiek sposób? – redrum