2

Google カスタム検索のページ結果に次へと前へのリンクを追加することはできますか? このスレッドを見つけましたGoogleカスタム検索エンジンのページングリンクで次/前のリンクを表示する方法ですが、コードはGoogleカスタム検索の古いバージョン用です。

新しいバージョンでは、次のようなタグが付けられるだけで、<gcse:searchresults-only></gcse:searchresults-only>そこからすべてが生成されます。何か案は?ありがとう

このように検索結果が引き込まれています。

<script>
(function() {
    var cx = 'xxxxxx:xxxxx',
        gcse = document.createElement('script');

    gcse.type = 'text/javascript'; gcse.async = true;
    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//www.google.com/cse/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s);
})();
</script>

<gcse:searchresults-only></gcse:searchresults-only>
4

2 に答える 2

0

searcher.cursor.currentPageIndexこれをsearcher.gotoPage()すべてラップして使用できますgoogle.setOnLoadCallback

window.customSearchControl = customSearchControl;

$(function() {

    var link = $('<a />', {
        'html' : 'link',
        'href' : '#',
        'class' : 'general-button',
        'style' : 'margin-right:1em'
    });

    var searcher = window.customSearchControl.getWebSearcher();

    var prev = link.clone().click(function(e) {
        e.preventDefault();
        var topage = searcher.cursor.currentPageIndex - 1;
        if(topage < 1) {
            topage = 0;
        }
        searcher.gotoPage(topage);
        return false;
    }).html('&lt; prev');

    var next = link.clone().click(function(e) {
        e.preventDefault();
        var topage = searcher.cursor.currentPageIndex + 1;
        if(topage > searcher.cursor.pages.length) {
            topage = 10;
        }
        searcher.gotoPage(topage);
        return false;
    }).html('next &gt;');

    $('#cse').append(prev).append(next);
});
于 2014-05-09T04:24:45.420 に答える
0

私はいくつかの Jquery を使用しましたが、なくても実行できます。説明をコードに入れました。

 //Listens for DOM changes
var observer = new MutationObserver(function (mutations, observer) {
    // fired when a mutation occurs
    makeNext();
});

// define what element should be observed by the observer
// and what types of mutations trigger the callback
observer.observe(document, {
    subtree: true,
    attributes: true
});

function makeNext() {
    //Make a Next element
    var el = $("<div></div>", {
        "id": "next",
        "class": "gsc-cursor-page", // need google class so is same look and works with them
        "text": "Next",
        "on": { // on click, find what is the current page, and trigger click on the one after
            "click": function () {
                $(".gsc-cursor-current-page").next(".gsc-cursor-page").click();
            }
        }
    });
    //When results load, lots of changes are made, but we only wont 1 Next button
    if ($("#next").length == 0) {
        $(".gsc-cursor").append(el);
    }
}
于 2019-11-05T12:54:23.247 に答える