0

私の質問が正しいかどうかさえわかりません。つまり、それが私のコードを機能させない 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,    

- すべてのコメントを読み込む方法はたくさんあると思いますが、解決策が見つかりませんでした。誰か助けてくれませんか?

4

2 に答える 2

0

ボタンのクラス名に一致するすべての要素を取得し、配列に格納できます。次に、配列内のインデックスを直接参照してクリックできます。これは最善の方法ではないかもしれませんが、ボタンをクリックします。それが役に立てば幸い。

コメントをさらに読み込むボタンをクリックする Javascript:

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

要求に応じた jQuery ソリューション:

$(".glbComentarios-botao-mais").click();
于 2013-11-21T18:41:32.757 に答える
0

ボタンをクリックするだけでは、必要なものを達成することはできません。「いくつかの」非表示のコメントがあり、ボタンを 1 回クリックすると、最初の非表示のコメントが表示されますが、さらにクリックすると、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 のような非常に高い数値に設定したりしましたか

于 2013-11-21T19:03:20.190 に答える