После window.open не может печатать в Safari для Mac - PullRequest
0 голосов
/ 07 февраля 2012

Я создаю вторичное окно браузера с кодом Javascript, используя функцию window.open, и заполняю его программным способом некоторым содержанием HTML. Он хорошо работает для всех браузеров, которые поддерживает мое приложение, кроме одного: Safari на Mac. На самом деле само окно в порядке, но команда печати отключена. У кого-нибудь есть идея, почему? Я должен упомянуть, что главная причина показа этого окна - позволить пользователям распечатать некоторые данные. Я думаю, что я мог бы реализовать кнопку «Печать» на странице, но я бы предпочел не делать (и она может не работать, но я не пробовал).

Вот упрощенный пример кода, который я использую для создания содержимого HTML:

        var pp = window.open("", "_blank");
        pp.document.writeln("<html>");
        pp.document.writeln("<head>");
        pp.document.writeln("<title>");
        pp.document.writeln("Hello");
        pp.document.writeln("</title>");
        pp.document.writeln("</head>");
        pp.document.writeln("<body>");
        pp.document.writeln("The body");
        pp.document.writeln("</html>");
        pp.document.close();

Я пробовал варианты этого кода, но безуспешно. Мои тесты сделаны с Safari 5.1 на Mac OS X 10.6.8. Любая помощь приветствуется!

1 Ответ

1 голос
/ 07 февраля 2012

Распечатать окно:

Перед тем как </html> добавить:

pp.document.writeln("<script type='text/javascript'>window.print()</script>");
...