鸣叫按钮和infoWindow

时间:2012-03-21 09:49:39

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

我想将Tweet按钮集成到Google Maps v3 infoWindow(infoBox)中,但我没有成功。当然我使用的脚本在一个简单的页面上工作。我在我的模板文件中设置了twitter的js,将锚点添加到gmaps javascript文件中的html变量: ...     鸣叫 ...

如果我将鼠标悬停在锚点链接上,并且没有可见的Tweet图形按钮,那么现在可以看到的只是“推文”文本。如果我点击此按钮,Twitter网站会加载但不会共享任何内容。

使用Facebook Like按钮我必须实现一行代码,以便“domready”事件运行。

如何做到这一点?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,但我正在接近解决它。

我猜你正在使用标准Twitter examples添加<a>标记,例如:

<a href="https://twitter.com/share" class="twitter-share-button" 
data-lang="en">Tweet</a>

然后需要加载他们的JavaScript:

<script>!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-wjs");</script>

所以问题可能是infoWindow没有附加到DOM

Google Maps V3 API InfoWindow Class有一个事件“domready”。

因此,如果您像我一样使用jQuery,那么您需要执行以下操作:

google.maps.event.addListener(bubble, 'domready', function(event) {
        !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-wjs");
});

请记住,我还没有这个工作:)

让我们排除这个傻逼!

答案 1 :(得分:0)

只需更改任何名为InfoWindow对象的信息框,gyaresu回答即可,但只能使用一次。

google.maps.event.addListener(infobox, 'domready', function(event) {
    FB.XFBML.parse();
    twttr.widgets.load();
});