Нажмите кнопку css или загрузите все комментарии

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

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

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

class="off"

класс = выкл

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

$("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);

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

<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,    

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

2 ответа

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

Javascript, чтобы нажать кнопку "Загрузить больше комментариев":

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

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

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

Вы не сможете достичь того, что вам нужно, нажав кнопку. Есть "некоторые" скрытые комментарии, и если нажать кнопку один раз, вы обнаружите первоначальные скрытые комментарии, но дополнительные щелчки делают 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

Другие вопросы по тегам