单击twitter按钮时获取数据attr。
单击推文按钮时,我需要访问data-url =“some link”。
使用此代码:
twttr.events.bind('click', function(event) { var tweeturl = $('.twitter-share-button').data("url"); var count = $('.twitter-share-button').data("count"); console.log(tweeturl, count); });
但是控制台正在输出’undefined undefined’。 任何人都可以告诉我为什么会这样,以及如何解决它?
查看完整的JS Fiddle 。
非常感谢大家。
看起来twitter API正在改变您的链接并将其放入IFrame中。 因此链接可以更长时间访问。 我可能需要更好地了解您的问题,以便正确回答您的问题。
但是你也可以将你的数据存储在foo元素中吗?
twttr.events.bind('click', function(event) { var tweeturl = $('#foo').data("url"); var count = $('#foo').data("count"); console.log(tweeturl, count); });
例
获取URL很简单,只需使用此HTML:
和这个事件处理程序:
twttr.events.bind('click', function(event) { var link = $(event.target).parent().data('url'); console.log(link); });
Twitter的javascript将.twitter-share-button
链接转换为包含共享按钮html的iframe。 这意味着当您尝试在代码中选择它时,实际上是在选择一个没有链接所具有的data-*
属性的iframe。
您也无法获取iframe的内容并因查找同源策略而找到计数。
但是,您可以使用Twitter的api获取推文数量:
$.ajax({ dataType: "jsonp", url: 'http://urls.api.twitter.com/1/urls/count.json?url=http://ios-blog.co.uk', success: function (data) { console.log(data.count); } });
看到这个工作示例: http : //jsfiddle.net/TDgX5/
但是,这不是官方推荐的方法,可能不应过分依赖。 可能有更好的方法来解决您的问题,您使用的是什么?