#javascript #html #angularjs #internet-explorer #iframe
#javascript #HTML #angularjs #internet-explorer #iframe
Вопрос:
Итак, сначала я попробовал несколько решений, предложенных в аналогичных вопросах, которые я нашел на SO, но пока я не нашел способа заставить это работать.
В конце моего представления у меня есть :
<iframe ng-if="clientPDFUrl" id="clientPDF"
ng-src="{{originURL clientPDFUrl}}" ng-hide="true">
</iframe>
<iframe ng-if="CACPDFUrl" id="CACPDF"
ng-src="{{originURL CACPDFUrl}}" ng-hide="true">
</iframe>
Тогда у меня есть такой модальный :
<div class="modal-header">
<h3 class="modal-title">Printing</h3>
</div>
<div class="modal-body">
<button ng-click="localPrintPDF('CACPDF')"
class="btn btn-normal generate-pdf-button">Print for CAC
</button>
<button ng-click="localPrintPDF('clientPDF')"
class="btn btn-normal generate-pdf-button">Print for client
</button>
</div>
<div class="modal-footer">
<button ng-click="cancel()" class="btn btn-normal">Annuler</button>
</div>
И, наконец, контроллер :
angular.module('app.edition').controller('printingModalController', [
'$scope', '$rootScope', '$state', '$stateParams', '$modalInstance', 'APIClientService',
function($scope, $rootScope, $state, $stateParams, $modalInstance, APIClientService) {
$scope.localPrintPDF = function(frameId) {
var frameContent = document.getElementById(frameId).contentWindow;
frameContent.document.execCommand('print', false, null);
};
$scope.cancel = function() {
$modalInstance.dismiss(false);
};
}
]);
Итак, это отлично работает в Chrome, но печатает пустую страницу с помощью IE.
То, что я пробовал до сих пор :
- Замена
ng-hide="true"
наstyle="width: 0px; height: 0px;"
- Используя
frameContent.print()
вместоframeContent.document.execCommand('print', false, null);
- Использование
focus()
перед использованиемprint()
- Используя
window.frames[frameId].print()
(Сfocus()
первым)
Итак, есть какие-либо предложения по обеспечению работы печати в IE? Возможно, я мог бы использовать что-то другое, кроме iframe.
Комментарии:
1. Какая версия IE? Вы получаете сообщение об ошибке в консоли разработчика?
2. Я использую IE 11.0.9600.18426. В консоли ошибка не отображается