【问题标题】:Embed tweet in google map infowindow在谷歌地图信息窗口中嵌入推文
【发布时间】:2014-01-04 20:47:12
【问题描述】:

我想使用推文的嵌入代码并将其设置为谷歌地图 v3 信息窗口内容并在地图上显示完全样式的推文 iframe。但 iframe 不会加载。我在这里做了测试用例http://jsfiddle.net/kN7yZ/58/点击那里的标记。

这里是测试用例代码:

var myCenter=new google.maps.LatLng(51.508742,-0.120850);

function initialize()
{
var mapProp = {
  center:myCenter,
  zoom:5,
  mapTypeId:google.maps.MapTypeId.ROADMAP
  };

var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);

var marker=new google.maps.Marker({
  position:myCenter,
  });

marker.setMap(map);

var text = '<blockquote class="twitter-tweet" lang="en"><p>EVO KAŽU DA NAŠA DECA NE VISE TOLIKO NA INTERNETU-PA NE MOGU DA STIGNU OD RODITELJA JEBOTE.</p>&mdash; Nichim Izazvan (@NichimIzazvan) <a href="https://twitter.com/NichimIzazvan/statuses/419180893035827200">January 3, 2014</a></blockquote>';
text += '<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></'+'script>';

var infowindow = new google.maps.InfoWindow({
  content:text
  });

google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
  });
}
initialize();

【问题讨论】:

    标签: javascript google-maps google-maps-api-3 twitter


    【解决方案1】:

    您需要使用信息窗口上的 domready 事件并从那里添加 twitter 脚本。

    google.maps.event.addListener(infowindow, 'domready', function () {
        ! function (d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (!d.getElementById(id)) {
                js = d.createElement(s);
                js.id = id;
                js.src = "//platform.twitter.com/widgets.js";
                fjs.parentNode.insertBefore(js, fjs);
            }
        }(document, "script", "twitter-widgets");
    });
    

    从您的信息窗口内容中删除脚本并仅保留块引用。见http://jsfiddle.net/upsidown/eh4Kp/

    您可能需要调整信息窗口大小以适应推文,祝您好运!

    【讨论】:

    • 谢谢,你解决了。我有一组 infowindows,但是当我在循环中将侦听器附加到 infowindows 时,它只会在数组中最后一个 infowindow,这里是 pastebin jsfiddle.net/C2AuV 。还有一种方法可以获取加载推文的宽度/高度,然后相应地调整信息窗口的大小?
    • 您发布的代码不完整。您不应创建多个信息窗口。尝试找到一种只有一个的方法并相应地设置内容。关于尺寸,宽度应该不是问题。你可以在你的 twitter-tweet 类上设置一个最小高度。但这不会是动态的。
    • 我省略了 id 设置和检查脚本标签,它适用于 infowindows 数组。我将提供更多关于 infowindows 样式的信息,并在稍后发表评论。
    猜你喜欢
    • 1970-01-01
    • 2016-07-10
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多