如何动态创建推文按钮?

时间:2011-08-08 12:12:29

标签: 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";

我遇到的问题是该按钮显示为文本链接,而不是带有水平计数框的按钮。

我以相同的方式创建了一个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';

使用以下内容:

FB.XFBML.parse();

解析并绘制按钮。 FB.XFBML.parse()来自 http://connect.facebook.net/en_US/all.js

当我在.html文件中静态创建Tweet按钮时,它可以正常工作。我在索引页面中包含以下脚本,其中应该动态创建推文按钮:

<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>

如果你能看到我做错了什么,请通知我!

以下屏幕截图给出了推文按钮出现问题的直观说明! Tweet button not displaying correctly.

解决方案:

我现在设法解决了这个问题。我想象的问题是twitter脚本在加载时运行,而不是在创建元素时重新运行。

使用以下jQuery正常工作!

$ getScript加入( “http://platform.twitter.com/widgets.js”);

3 个答案:

答案 0 :(得分:32)

值得注意的是,截至最近,您可以使用以下Twitter小部件功能:

twttr.widgets.load();

假设您已加载widgets.js文件:

<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>

这将动态地为您重新创建推文按钮。

答案 1 :(得分:6)

我现在设法解决了这个问题。我想象的问题是twitter脚本在加载时运行,而不是在创建元素时重新运行。

使用以下jQuery正常工作!

$.getScript("http://platform.twitter.com/widgets.js");

答案 2 :(得分:2)

您只是使用了错误的代码。要指定URL,请使用url,而不是data-url。这有效:

var twitter = document.createElement('a');
twitter.setAttribute('href', 'http://twitter.com/share');
twitter.setAttribute('class', 'twitter-share-button twitter-tweet');
twitter.setAttribute('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";

有关详细信息,请查看Twitter https://dev.twitter.com/docs/tweet-button#properties

上的文档