我有一个角度指令,仅在加载微调器的情况下在模型窗口上显示PDF报告。问题是iframe onload无法在Edge浏览器中触发。基本上,一旦将PDF加载到iframe上,我就需要隐藏我的微调框。我仅使用Edge时遇到问题,其余所有浏览器(IE11,FF,Chrome,Safari)正常工作。
这是我的指令。
app.module('app.layout')
.directive('pdfReport', function() {
return {
restrict: 'E',
scope: {
iframesrc: '='
},
controller: function($scope) {
$scope.showSpinner = false;
console.log($scope.showSpinner);
$scope.$watch("iframesrc", function(newValue) {
if (newValue) {
$scope.showSpinner = true;
console.log($scope.showSpinner);
}
});
$('#reportIframe').on('load', function() {
$scope.showSpinner = false;
$scope.$apply();
console.log($scope.showSpinner);
});
},
template: '<div pdf-report-loader show-loader="showSpinner" ngplus-overlay-delay-in="30" ngplus-overlay-delay-out="30" ngplus-overlay-animation="dissolve-animation">' +
'<div class="model-spinner"></div>' +
'</div>' +
'<iframe id="reportIframe" ng-src="{{iframesrc}}" style="width: 100%; height: 500px;border: solid 1px white;">' +
'</iframe>'
}
});
最佳答案
这是MS IE11和Microsoft Edge的已知问题,但可能针对IE11的问题已解决,但未解决问题:
您可以在此处关注问题的状态:
https://connect.microsoft.com/IE/feedback/details/809377/ie-11-load-event-doesnt-fired-for-pdf-in-iframe
https://connect.microsoft.com/IE/feedback/details/1952904/microsoft-edge-load-event-doesnt-get-fired-for-pdf-content-inside-an-iframe
关于javascript - Edge浏览器无法触发iframe onload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32905456/