【问题标题】:How can I dynamically create a tweet button?如何动态创建推文按钮?
【发布时间】:2011-10-22 08:28:43
【问题描述】:

我目前正在尝试动态创建具有水平计数功能的推文按钮:

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>

如果你看到我做错了什么,请告诉我!

以下屏幕截图直观地解释了推文按钮出了什么问题!

解决方案:

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

使用下面的 jQuery 可以正常工作!

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

【问题讨论】:

  • 您应该将解决方案作为答案并关闭问题

标签: javascript twitter dhtml


【解决方案1】:

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

twttr.widgets.load();

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

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

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

【讨论】:

  • 这实际上是一个更好的解决方案,如果您只想让脚本(重新)创建按钮,而不是强制重新加载。
【解决方案2】:

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

使用下面的 jQuery 可以正常工作!

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

【讨论】:

    【解决方案3】:

    您只是使用了错误的代码。要指定 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

    【讨论】:

    • 感谢有关网址的信息,但我遇到的主要问题是推文按钮显示为文本。我已经截取了屏幕截图来向您展示我的意思。 i.imgur.com/J1qoA.png
    • 您使用的是哪个浏览器?这在 Chrome 中对我有用 编辑:刚刚在 Firefox 中尝试过。我明白你的意思了。我看看能不能帮忙。
    • @Jack 你可以尝试启动 Firefox 控制台吗?我从 Twitter 的 twimg.com 域中收到一些 CSS 样式表错误。编辑:突然,我没有收到更多警告,但问题仍然存在。 ://
    • 它似乎在 Firefox 4 和 Chrome 中对我有用。我还没有在其他浏览器中完全测试我的网站,我打算在 Chrome 中制作一个工作版本并对其进行重构。
    • 可能是因为我当时使用的是 Firefox 5。我讨厌跨浏览器测试。真的很烦我。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2013-02-17
    • 2014-11-08
    • 2013-09-05
    • 2019-07-26
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多