2013-11-21 2 views
0

Я даже не знаю, прав ли мой вопрос, я не могу сказать, что это кнопка css, которая не позволяет моему коду работать. Я хочу загрузить все комментарии об этом news site.нажмите кнопку css или загрузите все комментарии

Как вы можете видеть, внизу страницы открываются самые 5 комментариев, а ниже - кнопка для загрузки дополнительных комментариев. Эта кнопка предназначена для автоматического нажатия, и я считаю, что это кнопка css.

Поскольку моя попытка щелчка не удалась, я попытался использовать альтернативное решение без успеха. Скрытые комментарии маркируются с:

class="off" 

class=off

Когда я удалить этот класс на поджигатель, комментарий мгновенно появится на странице, но я не мог получить его выбрать или основан с JQuery, когда я tryied следующее:

$("li").removeClass("off"); 

- Вот мой провал код, который появляется, чтобы никогда не нашли элементы ждали:

// ==UserScript== 
// @name  globo coments 
// @description globo coments 
// @include  http://*.globo.com/*.html 
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js 
// @require  https://gist.github.com/raw/2625891/waitForKeyElements.js 
// @version  1 
// @grant  GM_addStyle 
// ==/UserScript== 

function maisComents(jNode) { 
     alert('???'); 
} 

waitForKeyElements ("#glb-materia .widget widget-comentarios #boxComentarios .glbComentarios-lista glbComentarios-lista-recentes button .glbComentarios-botao-mais", maisComents); 

- На вкладке сценарного поджигатель вы можете увидеть это:

<div id='boxComentarios'></div> 
    <script type="text/javascript"> 
     glb.runner.push('comentarios', function(global, $) { 
     var articleUrl = 'http://ego.globo.com/biquini/noticia/2013/11/marina-elali-exibe-boa-forma-de-biquini.html', 
     slug = articleUrl.split('/').pop().split('.').shift(), 
     hash = global.sha1(slug); 
     $('#boxComentarios').comentarios({ 
      'uri': '/jornalismo/ego/biquini', 
      'url': articleUrl, 
      'titulo': slug, 
      'idExterno': hash, 
      'exibeTeaserComentarios': true, 
      'qtdComentariosNoTeaser': 5,     
      'botaoComentario': {'topo': '.listar-comentarios-topo'} 
    }); 
}); 
</script> 
</div> 

Что в этой строке задается число комментариев

'qtdComentariosNoTeaser': 5,  

- Я считаю, что многие способы загрузить все комментарии, но я не смог найти решение. Не могли бы вы помочь мне?

ответ

0

Вы можете получить все элементы, соответствующие имени класса кнопки и сохранить в массиве. Затем вы можете напрямую ссылаться на индекс в массиве и нажимать. Это может быть не самый лучший метод, но он нажимает кнопку. Надеюсь, поможет.

Javascript щелкать нагрузка больше комментариев кнопку:

var arrEle = document.getElementsByClassName('glbComentarios-botao-mais'); 
arrEle[0].click(); 

решение JQuery по запросу:

$(".glbComentarios-botao-mais").click(); 
+0

ОР использует JQuery, поэтому вы должны дать решение JQuery. Исходное решение JS _in addition_ является полезным бонусом для тех, кто не использует jQuery – Bojangles

+0

Спасибо за ваш ответ, но он не сработал. Я думаю, проблема в том, что комментарии AJAX и нуждаются в waitKeyForElements для работы, которые не активируются. В моем коде я использовал предупреждение, чтобы проверить это, и предупреждение никогда не появлялось.Поиск объекта в DOM был одной из проблем. – Comentarist

+0

Да, комментарии загружаются с использованием AJAX и поэтому, когда вы делаете этот вызов, элементы отсутствуют на странице. Если у 'comentarios()' есть событие успеха, на которое можно было бы это назвать, вы будете бороться. – jammykam

0

Вы не собираетесь быть в состоянии добиться того, что вам нужно, нажав на кнопку. Есть «некоторые» скрытые комментарии, и нажав на кнопку один раз, действительно показывает начальные скрытые комментарии, но аддитивных кликов сделать вызов AJAX для загрузки больше комментариев, звонки:

http://comentarios.globo.com/comentarios/%40%40jornalismo%40%40ego%40%40biquini/bb7ac85e446f9d568d9047886db0f0665b1753a1/http%3A%40%40%40%40ego.globo.com%40%40biquini%40%40noticia%40%402013%40%4011%40%40marina-elali-exibe-boa-forma-de-biquini.html/shorturl/marina-elali-exibe-boa-forma-de-biquini/2.json

3.json, 4. JSON и т.д.

ли вы попробуйте удалить строку 'qtdComentariosNoTeaser': 5, или установить его на действительно большом количестве, как 9999

+0

Я не потому, что не знаю, как это сделать. – Comentarist

+0

Есть ли у вас доступ к исходным кодом? Я только что заметил тег greasemonkey, поэтому предположим, что вы пытаетесь создать скрипт? – jammykam

+0

У меня нет доступа к источнику, и да, я пытаюсь выполнить скрипт. – Comentarist

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