基本上,我需要运行一些jQuery代码的搜索结果呈现得到我的网页上后。 我可以使用的V1代码:
<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', 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(
'zzzzzzzzzzzz', customSearchOptions);
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
var options = new google.search.DrawOptions();
options.setAutoComplete(true);
customSearchControl.setAutoCompletionId('zzzzzz:zzzzzzz+qptype:3');
options.enableSearchResultsOnly();
customSearchControl.draw('cse', options);
function parseParamsFromUrl() {
var params = {};
var parts = window.location.search.substr(1).split('\x26');
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 = "q";
if (urlParams[queryParamName]) {
customSearchControl.execute(urlParams[queryParamName]);
}
}, true);
</script>
或v2的代码:
<!-- Put the following javascript before the closing </head> tag. -->
<script>
(function() {
var cx = 'xxxxxxxxx';
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>
我试图把我的函数调用中的代码,但无济于事各种场所。
我有一个需要动态设置搜索结果出现在容器的高度,所以一旦有结果负载我要正确,否则称之为我的页面显示的功能。
这里是一个链接到他们的V2 API文档: https://developers.google.com/custom-search/docs/element#cse-element和V1: https://developers.google.com/custom-search/docs/ JS / cselement参考 。 我什么都看不到哪里有在搜索结果呈现回调,仅在初始化。 太疯狂了,虽然有没有这样的事情支持。
以下是我已经与v2的尝试:
(function () {
var cx = 'xxxxxxxxx';
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;
gcse.onreadystatechange = gcse.onload = function () {
console.log("executed");
SetMainHeight(20);
};
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s);
})();
控制台从不输出“执行”。 此外,我注意到我的控制台我有以下错误:
不安全的JavaScript尝试与有关URL访问框架:从URL框架空白http://www.google.com/cse?q=test&client=google-coop&hl=en&r=s&cx=xxxxx ... S1%2Csr1&RURL =的http%3A%2F %2Flocalhost%3A58257%2FSearch%3Fq%3Dtest#从属-1-1。 域,协议和端口必须匹配。
不知道,如果该事项的搜索功能仍然正常工作。 我通过HTTP在本地主机上测试此。