我有一个div,我想通过jQuery将twitter共享按钮加载到其中。在页面加载时执行脚本时有效。但是在那之后,当我手动执行该脚本时,似乎没有加载该脚本。
原始按钮:
<a href="https://twitter.com/share" class="twitter-share-button" data-via="givestreamuk">Tweet</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="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
我尝试通过jQuery加载整个按钮(链接和脚本),但是它没有用,我只是获得了链接。相反,我尝试将脚本注入到DOM中,如下所示:
这是我的JS:
var twitter = '<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://customer-url" data-via="givestreamuk" data-hashtags="socialgiving">Tweet</a>';
jQuery('#twitter_share').html(twitter);
var jstext = '!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");';
var script = document.createElement("script");
script.type = "text/javascript";
script.text = jstext;
jQuery('#twitter_share').append(script);
我的DIV按钮放置在:
<div id="twitter_share"></div>
当脚本在页面加载时执行但在此之后手动手动执行时,只有链接出现在div中,这才有效。
谁能建议我如何将该按钮手动加载到DIV中并执行脚本,以便生成按钮?
最佳答案
您在项目中使用Turbolinks,PJAX或其他类似的gem吗?如果是这样,请参考此线程:
https://github.com/rails/turbolinks/issues/25
这些解决方案:
http://www.blackfishweb.com/blog/asynchronously-loading-twitter-google-facebook-and-linkedin-buttons-and-widgets-ajax-bonus
http://reed.github.com/turbolinks-compatibility/facebook.html
关于javascript - 无法通过Javascript加载Twitter分享按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10191728/