محرك البحث الخاص بجوجل:عرض عدد النتائج
-
17-09-2020 - |
سؤال
لقد قمت بتنفيذ بحث موقع 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" />
المحلول
ستحتاج إلى استخدام SearchCompleteCallback ودفنه عميقًا داخل مكتبة جافا سكريبت المبهمة، وستجد الخاصية المقدرةResultCount.فيما يلي مثال سريع ينبثق به تنبيه مع العدد.يمكنك تخصيص هذا لتلبية احتياجاتك باستخدام 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>
لا تنتمي إلى StackOverflow