在灯箱点击之前不要加载 iFrame Google 地图

Posted

技术标签:

【中文标题】在灯箱点击之前不要加载 iFrame Google 地图【英文标题】:Do Not Load iFrame Google Map Until Lightbox Click 【发布时间】:2014-06-12 16:47:04 【问题描述】:

我正在使用 Google Maps iFrame Embed 将一些地图嵌入到页面中。这些地图被加载到一个页面中,并在点击时显示在一个灯箱中(以及其他信息)。是否可以不加载 iFrame 内容直到灯箱链接实际被点击?

当可能只需要一两个地图时,我不想加载 10 多张地图。

这可能吗?

我使用 Fancybox 2 作为灯箱和 jQuery 2.1。

我曾考虑使用 jQuery 在点击时注入 iFrame 代码,但我不确定最佳方法。

【问题讨论】:

【参考方案1】:

可能有不同的方式,1种可能:

src 存储在iframe 的另一个属性中(例如data-src)并在灯箱打开时分配src

$(".selector").fancybox(
    afterLoad:function()
        this.content.find('iframe')
       .each(function(i,f) 
          f=$(f);
          if(!f.attr('src')) 
             f.attr('src',f.data('src'));
           
        );               
    
);

【讨论】:

效果很好。谢谢。我确实在 Firebug 中看到了这个错误:...e(d)catch(k)e(1,k);returnb(a)else e(0,null);c[gb]("GET",a,!0);c.send(null)... init_embed.js (line 28) - 我不确定它是在我的页面上还是在 Google 地图上?它似乎不会对页面本身造成任何问题。 这个错误是google强制的(我猜是试图访问父文档)

以上是关于在灯箱点击之前不要加载 iFrame Google 地图的主要内容,如果未能解决你的问题,请参考以下文章

灯箱关闭时停止并播放 Iframe 视频

灯箱关闭后,羽毛灯箱中的 Youtube iframe 视频继续播放

iframe 中显示的嵌入式付款返回 url

点击时动态加载包含 iframe 的模式?

Lightbox facebook iframe,视频嵌入

如何让 Paypal 购物车加载到灯箱中