2012-03-12 2 views
1

Кто-нибудь мог получить Facebook Like, Twitter Follow и кнопки Google +1 для работы внутри хромированного расширения.Кнопки социальных медиа внутри скрытых Div

Я могу получить кнопки для отображения и некоторые функции, но, похоже, отсутствуют части. Например, кнопка Like не запоминается, если вам понравилось, она показывает количество 1 каждый раз. Twitter не показывает правильное количество подписчиков и не пропускает имя @us после текста «Follow».

Я знаю, что расширения изолированы песочницей. Кто-нибудь нашел способ обойти это? Пример? Код?

UPDATE

Проблема заключается в том, что кнопки социальных медиа находятся внутри DIV, который скрыт (дисплей: нет). Для отображения и скрытия div использует jQuery's slideToggle. По умолчанию div не отображается, и на нем находятся кнопки социальных сетей. Когда я помещал кнопки социальных сетей в div, которые не скрыты, они работают нормально. Любые решения?

Проблема заключалась в том, что кнопки социальных сетей находятся внутри скрытого div (другой экран, к которому можно получить доступ через вкладку). Есть ли способ заставить их работать без обновления z-индекса при запущенных событиях?

ответ

-2

Проблема решена. Я добавил разметку на страницу разметки и сделал анонимный вызов функции скрипту API сразу же после запуска режима slideToggle. Прекрасно работает.

+0

Я столкнулся с той же проблемой. Кнопки Facebook расположены на div, который установлен для отображения: none; (до действия наведения). У вас возникли проблемы с запуском анонимного вызова функции. Можете ли вы поделиться кодом, который вы использовали? – Mark1270287

+0

@ Mark1270287 Я закончил тем, что сломал кнопки социальных сетей, поэтому у меня больше нет кода - извините. – jjNford

0

Они работают на дополнительной странице. Вы должны явно указать общедоступный URL-адрес, а facebook/twitter должны быть изменены, чтобы явно включить протокол. //platform.twitter.com к https://platform.twitter.com

popup.html

<html> 
<body> 
    <a href="https://twitter.com/twitter" class="twitter-follow-button" data-show-count="false">Follow @twitter</a> 
    <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="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> 

    <div id="fb-root"></div> 
    <script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "https://connect.facebook.net/en_US/all.js#xfbml=1&appId=113869198637480"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk'));</script> 
    <div class="fb-like" data-href="http://example.com" data-send="false" data-layout="button_count" data-width="250" data-show-faces="false"></div> 

    <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> 
    <g:plusone href='http://example.com'></g:plusone> 
</body> 
</html> 

manifest.json

{ 
    "name": "test", 
    "version": "1", 
    "browser_action": { 
    "default_popup": "popup.html" 
    } 
} 
+0

Yup, я уже сделал это, прежде чем даже опубликовать этот вопрос. Это позволяет кнопкам работать так, как указано выше. Однако я хочу, чтобы они были полностью функциональными. – jjNford

+0

Например, кнопка twitter говорит «Follow», но не «Follow @jjNford» – jjNford

+0

Я думаю, что проблема заключается в том, что проблема заключается в том, что Twitter и Facebook пытаются связаться с кнопкой, но у нее нет URL-адреса, который может быть достигнут, потому что он изолирован песочницей , – jjNford