我甚至不知道我的问题是否正确,我的意思是,我不能说它是否是一个不让我的代码工作的css按钮。我想加载此news site的所有评论。
正如您所看到的,在页面底部,打开了最多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,
- 我相信有很多方法可以加载所有评论,但我找不到任何解决方案。 你能帮助我吗?
答案 0 :(得分:0)
您可以获取与按钮的类名匹配的所有元素并存储在数组中。然后你可以直接引用数组中的索引并单击。这可能不是最好的方法,但它确实单击了按钮。希望它有所帮助。
Javascript点击加载更多评论按钮:
var arrEle = document.getElementsByClassName('glbComentarios-botao-mais');
arrEle[0].click();
按要求提供jQuery解决方案:
$(".glbComentarios-botao-mais").click();
答案 1 :(得分:0)
单击按钮,您将无法实现所需。有一些“隐藏的评论”,单击按钮一次确实显示了初始隐藏的评论,但是额外的点击进行了AJAX调用以加载更多评论,调用:
3.json,4.json等
您是否尝试删除行'qtdComentariosNoTeaser': 5,
或将其设置为非常高的数字,例如9999