我有一个加载pdf文件的iframe div。单击pdf图标时会出现,并且有一个标签“X”,单击该标签将隐藏div(onclick事件,只需将显示更改为阻止)。但是,当试图关闭div时,加载的页面也消失了,你看到的只是白屏。我必须按F12才能再次显示页面。该页面应该在Firefox,Chrome和Safari中运行,我在IE9-IE11中只有这个问题或行为。但奇怪的是,当我使用BrowserStack测试页面时,一切都很好用于browserstack。对于为什么会发生这种情况的任何想法?
<div class="pdf-file" style="display: none;">
<label>X</label>
<iframe src="blah" scrolling="no" width=400 height=400 class="pdf-class"></iframe>
</div>
请注意,这个div的位置是绝对的。
Onclick事件:
$('#pdf img).click(function() {
$('.pdf-file').show();
}
$('.pdf-file label).click(function() {
$('.pdf-file').hide();
}
javascripts就像上面一样简单,行为刚刚发生,我不明白为什么,我不记得在页面中改变了一些大的东西,这种行为很好,以前工作得很好。
答案 0 :(得分:1)
在搜索了有关手头问题的更多内容之后,我遇到了这个stackoverflow主题Blank iFrame in IE,它让我知道iframe可能是我的问题所以我将iframe更改为object并且在IE中完成了这个技巧。希望这会有所帮助。
答案 1 :(得分:0)
在我工作的应用程序上,我们在最近几天内遇到了这个问题。经过多次讨论,我们找到了一个权宜之计。
首先,我们有一些差异 - 我们的情况并不像上面那样简单。我们正在将PDF加载到iFrame中,但iFrame是在UI Bootstrap模式中。我们在单击模态上的“取消”按钮时获得了一个WSOD,这会导致模态实例被忽略,并且还会导致模态本身从DOM中删除。
解决这个问题的方法是:
function cancel() {
$uibModalInstance.dismiss('Cancelled.');
}
......对此:
function cancel() {
var $modal = $('div.modal-dialog');
$modal.css('display', 'none');
$uibModalInstance.dismiss('Cancelled.');
}
可能是,而不是调用$('.pdf-file').hide()
,而应该改为$('.pdf-file').css('display', 'none');
。