Google CSE: отображение количества результатов - PullRequest
1 голос
/ 19 июля 2010

Я реализовал поиск по сайту Google / пользовательский поиск для своего сайта, и все это работает, результаты отформатированы и разбиты на страницы.Но он никогда не возвращает количество найденных результатов, как при поиске в Google About 1,660,000 results (0.16 seconds)

Мне было интересно, нашел ли кто-нибудь что-нибудь для этого, я не могу найти что-нибудь в документации.

<div id="cse" style="width: 100%;">Loading</div>
        <script src="http://www.google.com/jsapi" type="text/javascript"></script>
        <script type="text/javascript">
            google.load('search', '1', {language : 'en'});
            google.setOnLoadCallback(function() {
                var customSearchControl = new google.search.CustomSearchControl('GOOGLEIDGOESHERE');
                customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
                customSearchControl.setNoResultsString("No results found.")
                customSearchControl.draw('cse');   
            }, true);
</script>
<link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />

1 Ответ

2 голосов
/ 21 июля 2010

Вам нужно будет использовать SearchCompleteCallback и закопать глубоко в обфусцированной библиотеке javascript, вы найдете свойствоtimateResultCount.Вот быстрый пример, который выскакивает предупреждение со счетчиком.Вы можете настроить это в соответствии со своими потребностями, используя jquery для вставки html-кода со счетчиком в любом формате, который вам нравится.

<div id="cse" style="width: 100%;">Loading</div>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">

google.load('search', '1', {language : 'en'});
google.setOnLoadCallback(function() {
    var customSearchControl = new google.search.CustomSearchControl('GOOGLEIDGOESHERE');
    customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
    customSearchControl.setNoResultsString("No results  found.")
    customSearchControl.setSearchCompleteCallback(null, 
        function() { searchCompleteCallback(customSearchControl) });

    customSearchControl.draw('cse');   
}, true);


function searchCompleteCallback(customSearchControl) {

  alert(customSearchControl.e[0].g.cursor.estimatedResultCount);

}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...