我有一个iframe
,属性为style="display:none"
。它在chrome中一直都很好用,但有时会在Firefox中引起问题。 Firefox中没有显示iframe
页,它是完全随机的。
这是我在angularjs
中的函数,它通过单击按钮来调用。
$scope.onAddGuarantorClicked = function() {
if($("#frmGuarantor").length > 0) {
$("#frmGuarantor" ).remove();
}
$("#loadingIframe").show();
var html="<div><iframe id='frmGuarantor' src='https://someUrl' width='100%' height='100%' onload='renderDone();' frameborder='0' style='display:none'></iframe></div>";
$("#dvAddGuarantor").append(html);
$("#dvAddGuarantor").css("min-height", $("#dvSummary").height());
$("#frmGuarantor").height($("#dvSummary").height() - 60);
$("#frmGuarantor").attr("src","aDemoPage?id="+$scope.applicationId);
$("#dvSummary").hide('slow');
$("#dvAddGuarantor").show('slow');
};
还有
window.renderDone = function(){
var d = new Date(); // for now
console.log('renderDone called outside at: H:'+ d.getHours()+' M:'+d.getMinutes()+' S:'+ d.getSeconds());
$("#frmGuarantor").show();
$("#loadingIframe").hide();
};
在控制台窗口中,当iframe
不起作用时,我发现了一个警告。它说:
jQuery.Deferred例外:divStyle为null computeStyleTests @ ...
Here是完整的警告信息。
然后我搜索了该问题并发现了this错误。
有什么方法可以使Firefox中的iframe
与display:none
一起工作?
答案 0 :(得分:0)
有一个BUG,因此,firefox在display:none
中不支持iframe
。为了解决该问题,我使用了
visbility:hidden
并显示已使用的iframe
$("#frmGuarantor")[0].style.visibility='visible'
答案 1 :(得分:-2)
尝试一下:
$('#frmGuarantor').css("display", "inline-block");
代替:
$('#frmGuarantor').show();