iframe 有时在 Firefox 中不起作用
Posted
技术标签:
【中文标题】iframe 有时在 Firefox 中不起作用【英文标题】:Iframe is not working sometimes in Firefox 【发布时间】:2019-01-09 18:00:40 【问题描述】:我有一个带有style="display:none"
属性的iframe
。它在 chrome 中一直运行良好,但有时会在 Firefox 中引起问题。没有 iframe
页面在 Firefox 中显示,它是完全随机的。
这是我在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 错误。
有什么方法可以让 iframe
在 Firefox 中与 display:none
一起工作?
【问题讨论】:
No iframe page is shown in firefox
- 这并不奇怪,因为样式有 display:none
稍后在renderDone()
我有 $('#frmGuarantor').show();更新了问题。
I have then searched for the issue and found, this bug.
你是对的,有一个错误......但它在 Chrome 中(Firefox 和 Edge 的行为根据与该“错误”相关的 CSS 草案规范讨论,仅Chrome 不遵循规范)
你能把display:none
改为visbility:hidden
吗?不确定 jQuery.show() 是否会显示它,但你总是可以$("#frmGuarantor")[0].style.visibility='visible';
代替
或$("#frmGuarantor").css('visibility', 'visible');
甚至$("#frmGuarantor").css('visibility', '');
【参考方案1】:
有一个BUG,因此firefox 不支持iframe
中的display:none
。为了解决这个问题,我使用了
visbility:hidden
并显示使用的iframe
$("#frmGuarantor")[0].style.visibility='visible'
【讨论】:
【参考方案2】:试试这个:
$('#frmGuarantor').css("display", "inline-block");
代替:
$('#frmGuarantor').show();
【讨论】:
以上是关于iframe 有时在 Firefox 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
iframe中的jquery手风琴在Firefox中不起作用
Stripe Checkout 在 Firefox 中不起作用
Youtube iframe src 自动播放在 Chrome 浏览器中不起作用
内容:url()在firefox中不起作用,::before/::after没有修复它[重复]