2013-10-07 3 views
1

Мне нужно получить доступ к data-url = "some link" при нажатии кнопки твит.GET data attr при нажатии кнопки щебета.

Используя этот код:

twttr.events.bind('click', function(event) { 

var tweeturl = $('.twitter-share-button').data("url"); 
var count = $('.twitter-share-button').data("count"); 
console.log(tweeturl, count); 
}); 

Однако консоль выводит 'неопределенные неопределенными. Может ли кто-нибудь сказать мне, почему это происходит и как это исправить?

Отъезд JS Fiddle.

Очень дорогие ребята.

ответ

1

Похоже, что API twitter меняет вашу ссылку и помещает ее в IFrame. Таким образом, связь более доступна. Возможно, мне нужно будет лучше понять, что вам нужно, чтобы правильно ответить на ваш вопрос.

Но можете ли вы хранить данные в элементе foo?

twttr.events.bind('click', function(event) { 
    var tweeturl = $('#foo').data("url"); 
    var count = $('#foo').data("count"); 
    console.log(tweeturl, count); 
}); 

Пример

http://jsfiddle.net/ZwHBf/87/

2

Получение URL легко, просто используйте этот HTML:

<div id="foo" data-url="http://ios-blog.co.uk"> 
    <!-- other html --> 
</div> 

и этот обработчик событий:

twttr.events.bind('click', function(event) { 
    var link = $(event.target).parent().data('url'); 
    console.log(link); 
}); 

Twitter» s javascript преобразует ссылку .twitter-share-button в iframe, содержащую кнопку общего доступа html. Это означает, что когда вы пытаетесь выбрать его в своем коде, вы фактически выбираете iframe, у которого нет атрибута data-*.

Вы также не можете получить содержимое iframe и найти счет из-за чего-то, называемого Same-origin policy.

Однако являются в состоянии получить количество твитов с помощью 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/

Однако это не официально рекомендуемый метод и, вероятно, не следует полагаться на слишком сильно. Может быть, есть лучший способ решить вашу проблему, для чего вы используете счет?

+0

Я просто использовал счетчик, чтобы попытаться получить доступ ко всему тому материалу, который был там, потому что это был только код данных, который не работал. – Danienllxxox

Смежные вопросы