[英]Google CSE - search parameter
我正在將網站的搜索引擎更改為Google CSE。
我在我的網站上使用“ s = term”,並且還會將網址生成為/search/term.html
Google無法識別它。 代碼必須更改什么?
var queryParamName ='s';
<div class="row-fluid sc-col row-dynamic-el" style="margin-bottom:40px;"><div class="row-fluid"><div id='cse' style='width: 100%;'>Loading</div></div>
<script src='//www.google.com/jsapi' type='text/javascript'></script>
<script type='text/javascript'>
google.load('search', '1', {language: 'pt', style: google.loader.themes.V2_DEFAULT});
google.setOnLoadCallback(function() {
var customSearchOptions = {};
var orderByOptions = {};
orderByOptions['keys'] = [{label: 'Relevance', key: ''} , {label: 'Date', key: 'date'}];
customSearchOptions['enableOrderBy'] = true;
customSearchOptions['orderByOptions'] = orderByOptions;
var customSearchControl = new google.search.CustomSearchControl('01111111111:111111111', customSearchOptions);
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
var options = new google.search.DrawOptions();
options.enableSearchResultsOnly();
options.setAutoComplete(true);
customSearchControl.draw('cse', options);
function parseParamsFromUrl() {
var params = {};
var parts = window.location.search.substr(1).split('&');
for (var i = 0; i < parts.length; i++) {
var keyValuePair = parts[i].split('=');
var key = decodeURIComponent(keyValuePair[0]);
params[key] = keyValuePair[1] ?
decodeURIComponent(keyValuePair[1].replace(/\+/g, ' ')) :
keyValuePair[1];
}
return params;
}
var urlParams = parseParamsFromUrl();
var queryParamName = 's';
if (urlParams[queryParamName]) {
customSearchControl.execute(urlParams[queryParamName]);
}
}, true);
</script>
</div>
我相信您使用的是V1代碼,而不是默認的V2代碼。
我無法評論V1,但要評論V2代碼,請訪問google cse控制面板中的“ 外觀”部分,選擇適當的布局並獲取代碼(V2)。 我使用“ 僅結果”布局,並制作了自己的自定義搜索框。 這是我的自定義查詢參數設置工作的方式:
我有用於
div
ID和類標簽的自定義CSS樣式表:searchbox2,searchcont2和searchString2,您需要將其替換為樣式表屬性。 自定義查詢參數在form
部分的name=s
下定義。
<div class="row"><div class="col-sm-12">
<div id="searchbox2" style="margin:0 auto; display: table;">
<div class="searchcont2">
<form role="search" method="get" action="https://www.example.com/search/">
<input id="searchString2" name="s" placeholder=" Search" type="text">
</form>
</div></div>
</div></div>
如果您使用其他搜索布局,即兩頁或兩列 ,則可以將以下代碼用於您的搜索框代碼,其中data-queryParameterName
將采用自定義搜索查詢詞。
<div class="gcse-searchbox" data-resultsUrl="http://www.example.com/search/"
data-newWindow =“ true” data-queryParameterName =“ s”>
對於HTML5頁面, google cse要求將class屬性設置為gcse-XXX
,例如div class="gcse-searchbox"
否則搜索結果可能無法按預期加載。 請訪問https://developers.google.com/custom-search/docs/element#html5了解更多
添加您的谷歌CSE resultsonly代碼在定義的搜索頁面,例如, https://www.example.com/search/和替換
<GOOGLE CSE CX ID>
與CSE CX ID。 與搜索框相同,HTML5頁面應具有適當的div
類屬性,例如,在以下情況下,<div class="gcse-searchresults-only"
:
<div class="row"><div class="col-sm-12">
<script>
(function() {
var cx = '<GOOGLE CSE CX ID>';
var 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>
<div class="gcse-searchresults-only">
</div></div>
干杯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.