Я получаю сообщение «Отказано в доступе» при попытке распечатать страницу с помощью jquery.PrintElement.js - PullRequest
2 голосов
/ 22 августа 2011

Хорошо, поэтому сценарий использования выглядит следующим образом:

У меня есть кнопка, которая открывает текущую страницу для печати с помощью плагина jquery print.

 $("#Section1").printElement({
        leaveOpen: true,
        printMode: 'popup',
        pageTitle: '<%=Resources.Reporting.Text_Title%>'
    });

Результат - то, что я ожидаю. Отображаются окно предварительного просмотра и диалоговое окно параметров печати. ​​

Если я щелкну еще раз и страница предварительного просмотра будет минимизирована, я получу сообщение об ошибке «Доступ запрещен», указывающий на JQuery.printElement.js.

Если он не свернут, он просто открывает то же всплывающее окно предварительного просмотра, что и раньше.

Это поведение IE, просто чтобы упомянуть. В Firefox есть предупреждение «Не доступно» из браузера.

Это что-то, что я могу исправить?

Из того, что я искал до сих пор, это сообщение "Ошибка доступа запрещена" связано с вызов на поддомен из другого домена "

1 Ответ

1 голос
/ 23 августа 2011

Спасибо Блоуси, это может дать ход.

Проблема была связана с тем, что плагин печати пытался открыть новое окно с одно и то же имя каждый раз, когда я нажимаю кнопку печати страницы. Я изменил его, чтобы новое и уникальное имя использовалось при каждом открытии страницы предварительного просмотра.

  if (opts["printMode"].toLowerCase() == 'popup') {
        popupOrIframe = window.open('about:blank', 'printElementWindow', 'width=650,height=440,scrollbars=yes');
        documentToWriteTo = popupOrIframe.document;
    }

до:

    var windowName = "printElementWindow";
    windowName = windowName + (Math.round(Math.random() * 99999)).toString();
    if (opts["printMode"].toLowerCase() == 'popup') {
        popupOrIframe = window.open('about:blank', windowName, 'width=650,height=440,scrollbars=yes');
        documentToWriteTo = popupOrIframe.document;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...