Internet Explorer 9 (8 ?) iframe 删除后不显示 display:none

Posted

技术标签:

【中文标题】Internet Explorer 9 (8 ?) iframe 删除后不显示 display:none【英文标题】:Internet explorer 9 (8 ?) iframe doesn't show up after removing display:none 【发布时间】:2016-10-17 17:14:14 【问题描述】:

如果我在没有“display:none”的情况下将 iframe 与谷歌地图一起放置,它会正确显示,但是当我在 css 类中添加 display:none 然后我用 jquery 将其删除时,带有地图的 iframe 不会显示。

html

<div id="kontakt_siedziba">

        <iframe id="mapa_siedziba" class="hidden" src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d10163.095243410511!2d16.666852538623033!3d50.44531365108525!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x3d08e591f3fac383!2sJatax+Sp.+z+o.o.!5e0!3m2!1spl!2spl!4v1466029556470"   frameborder="0" style="border:0" allowfullscreen></iframe>

        </div>

CSS:

  iframe#mapa_siedziba 
                float: right;
            

    .hidden 
                display: none;
            

#kontakt_siedziba, #kontakt_baza 
            height: 140px;
            border: 0px solid #007fff;
            border-radius: 5px;
            transition: padding 1s;
        

.unfolded_map 
            padding: 20px;

        

脚本:

<script>

    var clicked=0;
    $(document).ready(function()

        $("#siedziba").click(function()
            if(clicked==0)

            $("#kontakt_siedziba").addClass("unfolded_map").animate(
                height: '300px',borderWidth: '4',
                function() $("#mapa_siedziba").fadeIn(500, function()
                    clicked=1;

                );  );

            else if(clicked==1)

                $("#mapa_siedziba").fadeOut(1000, function()

                    $("#kontakt_siedziba").animate(
                        height: '140px',borderWidth: '0',
                        function()
                        
                            clicked=0;
                        ).removeClass("unfolded_map") ;

                );

             
        );

    );
</script>

我也尝试了 removeClass 而不是淡入,但它也不起作用

【问题讨论】:

也许可以尝试另一种隐藏方式,而不是 display:none。 sitepoint.com/five-ways-to-hide-elements-in-css 【参考方案1】:

你可以尝试两种方法:

    将 iframe 包装到 div 中并隐藏/取消隐藏 div 删除 iframe dom 元素并读取它

例子

var detachedItem = $('#mapa_siedziba').detach();
setTimeout(function() 
   $("#open_menu").click(function()  
      $("#kontakt_siedziba").append($detachedItem);
   );
, 4);

【讨论】:

1.不,它仍然不起作用:/ 2. 我不明白,你是什么意思? 您可以尝试将其从 dom 中删除并读取,而不是隐藏它 如何实现?使用 php 添加或删除整个 iframe 行? 我已经添加和示例 "在此处输入代码" - 我应该在这里粘贴整个 iframe 吗?我还添加了一个带有 id="open_menu" 的按钮来测试它,但它什么也没做。我认为我做错了什么?

以上是关于Internet Explorer 9 (8 ?) iframe 删除后不显示 display:none的主要内容,如果未能解决你的问题,请参考以下文章

在 Internet Explorer 9 中更改域名后,Ajax 停止工作

如果浏览器不是 Internet Explorer 9 或更高版本,则显示一条消息

在同一台计算机上运行 Internet Explorer 6、Internet Explorer 7 和 Internet Explorer 8

为啥即使在模拟 Internet Explorer 8 文档模式时,Internet Explorer 11 也不支持条件注释?

强制 Internet Explorer 9 使用 IE 9 模式

Internet Explorer 9 中的渐变