Jac*_*ack 14 javascript twitter dhtml
我目前正在尝试动态创建具有水平计数功能的推文按钮:
JavaScript的
var twitter = document.createElement('a');
twitter.setAttribute('href', 'http://twitter.com/share');
twitter.setAttribute('class', 'twitter-share-button twitter-tweet');
twitter.setAttribute('data-url','http://mindcloud.co.uk/idea/?idea=' + this.id);
twitter.setAttribute('data-count', 'horizontal');
twitter.setAttribute('data-via', 'jtbrowncouk');
twitter.style.top = '20px';
twitter.style.left = '300px';
twitter.innerHTML = "Tweet";
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是该按钮显示为文本链接,而不是带有水平计数框的按钮.
我以相同的方式创建了一个facebook按钮,它可以正常工作,但为了使其工作,我使用以下内容:
JavaScript的
var facebook = document.createElement('fb:like');
facebook.setAttribute('id', 'like'+this.id);
facebook.setAttribute('href', 'http://mindcloud.co.uk/idea/?idea=' + this.id);
facebook.setAttribute('layout', 'button_count');
facebook.setAttribute('send', 'false');
facebook.setAttribute('width' , '300');
facebook.setAttribute('font', '');
facebook.setAttribute('show_faces', 'true');
facebook.style.top = '0px';
facebook.style.left = '300px';
Run Code Online (Sandbox Code Playgroud)
使用以下内容:
FB.XFBML.parse();
Run Code Online (Sandbox Code Playgroud)
解析并绘制按钮.FB.XFBML.parse()来自
http://connect.facebook.net/en_US/all.js
当我在.html文件中静态创建Tweet按钮时,它可以正常工作.我在索引页面中包含以下脚本,其中应该动态创建tweet按钮:
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
Run Code Online (Sandbox Code Playgroud)
如果你能看到我做错了什么,请通知我!
以下屏幕截图给出了推文按钮出现问题的可视化解释!

解:
我现在设法解决了这个问题.我想象的问题是twitter脚本在加载时运行,而不是在创建元素时重新运行.
使用以下jQuery正常工作!
$ .getScript(" http://platform.twitter.com/widgets.js ");
dou*_*ald 32
值得注意的是,截至最近,您可以使用以下twitter小部件功能:
twttr.widgets.load();
Run Code Online (Sandbox Code Playgroud)
假设您已加载widgets.js文件:
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
Run Code Online (Sandbox Code Playgroud)
这将动态地为您重新创建推文按钮.
我现在设法解决了这个问题.我想象的问题是twitter脚本在加载时运行,而不是在创建元素时重新运行.
使用以下jQuery正常工作!
$.getScript("http://platform.twitter.com/widgets.js");
Run Code Online (Sandbox Code Playgroud)