Iframe有时在Firefox中无法正常工作

时间:2018-08-02 04:34:51

标签: javascript jquery angularjs iframe

我有一个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中的iframedisplay:none一起工作?

2 个答案:

答案 0 :(得分:0)

有一个BUG,因此,firefox在display:none中不支持iframe。为了解决该问题,我使用了

visbility:hidden

并显示已使用的iframe

$("#frmGuarantor")[0].style.visibility='visible' 

答案 1 :(得分:-2)

尝试一下:

$('#frmGuarantor').css("display", "inline-block"); 

代替:

$('#frmGuarantor').show();