2014-10-10 2 views
1

У меня есть страница с кнопкой и IFRAME. Внутри IFRAME я загружаю файл PDF динамически, который поступает из разных доменов.Невозможно распечатать pdf-файл, загруженный в iframe

Когда я пытаюсь распечатать файл с помощью действия кнопки, я получаю следующую ошибку.

Uncaught SecurityError: Blocked a frame with origin "http://localhost:8080" from accessing a frame with origin "http://www.cplusplus.com". Protocols, domains, and ports must match. 

Если я загружаю pdf-файл из своей локальной системы, я должен его распечатать.

Я использовал следующий код, чтобы напечатать IFrame Pdf

var iframe = document.querySelector("#unofficialtranscript"); 
iframe.focus(); 
iframe.contentWindow.print(); 

Любая идея, как я могу распечатать файл, который загружается в IFRAME, который находится на другом домене.

ответ

0

Я думаю, вам нужно взглянуть на same origin policy. Javascript вызывает только окно или iframe только в том случае, если политика принята.

Возможно, вам потребуется использовать Postmessage API.

Просьба посмотреть here.

+0

Я вижу много примеров для отправки сообщения с использованием Postmessage api с главной страницы в IFRAME, но мой случай отличается от того, что нужно распечатать файл. Я не уверен, как это сделать –

0

Если оба родительских DOM и дочерние DOM (то есть iframe) являются из одного домена, тогда он будет работать нормально.

Если нет, используйте библиотеки, такие как Porthole, для перекрестной связи между различными доменами.

Демо-сайт: http://sandbox.ternarylabs.com/porthole/

Примечание: Вы должны иметь доступ к обоим доменам используется в вашем коде.

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