我将我网站的搜索引擎更改为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>
答案 0 :(得分:0)
我相信您使用的是V1代码,而不是默认的V2代码。
我无法评论V1但是对于V2代码,请访问Google cse control panel中的外观部分,选择合适的布局并获取代码(V2)。我使用仅结果布局并制作了我自己的自定义搜索框。以下是我的设置如何为自定义查询参数工作:
我有
div
id和class标签的自定义css样式表:searchbox2,searchcont2和searchString2,您需要用样式表属性替换它们。自定义查询参数在name=s
部分的form
下定义。
<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”&gt;
对于HTML5网页, google cse要求将class属性设置为gcse-XXX
,例如,div class="gcse-searchbox"
否则搜索结果可能无法按预期加载。请点击https://developers.google.com/custom-search/docs/element#html5
在定义的搜索页面添加您的google cse resultsonly 代码,例如https://www.example.com/search/,并将
<GOOGLE CSE CX ID>
替换为您的cse cx id。与searchbox相同,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>
干杯!