Кнопка «Твитнуть» и информационное окно

Я хочу интегрировать кнопку Tweet в информационное окно Google Maps v3 (infoBox), но безуспешно. Конечно, скрипт, который я использую, работает на простой странице. Я настроил js твиттера в своем файле шаблона, добавил привязку к переменной html в файле javascript gmaps: ... Tweet ...

Теперь можно увидеть только текст «Твитнуть», если я наведу курсор на якорную ссылку, и графическая кнопка «Твитнуть» не видна. Если я нажму на эту кнопку, сайт Twitter загрузится, но ничего не поделится.

С кнопкой Facebook Like мне пришлось реализовать строку кода, запускающую событие «domready».

Как это сделать Твиттер?


person subdesign    schedule 21.03.2012    source источник


Ответы (2)


У меня такая же проблема, но я приближаюсь к ее решению.

Я предполагаю, что вы используете стандартные примеры Twitter, где вы добавляете <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.

В классе InfoWindow API Google Maps V3 есть событие "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");
});

Принимая во внимание, что я еще не получил это, чтобы работать :)

Давайте разберемся с этим лохом!

person Gareth    schedule 21.03.2012
comment
Во-первых, я установил свойство data-url, но в общем твите URL не отображается. Хм.. - person subdesign; 21.03.2012
comment
Поэтому я жестко запрограммировал часть ссылки и добавил идентификатор в качестве переменной, поэтому: + ID + нет, он полностью работает - person subdesign; 21.03.2012
comment
Да, мой код сложен, но основа и решение здесь: hastebin.com/pesawenuxi.js - person subdesign; 23.03.2012

Просто измените информационное поле на то, что называется вашим объектом InfoWindow, ответ gyaresu в порядке, но он сработает только один раз.

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