产品使用及交流论坛

首页 » 产品使用交流区 » 安装及使用交流 » 【已解决】谷歌站内搜索的多次调用问题,掌声有请xiyou闪亮登场!
paullee - 2012/5/31 14:12:00
偷了GOOGLE的站内搜索,用2串代码,前一段代码嵌入页面,代码如下
  1. <div id="cse-search-form" style="width: 100%;">Loading</div>
  2. <script src="http://www.google.com/jsapi" type="text/javascript"></script>
  3. <script type="text/javascript">
  4.   google.load('search', '1', {language : 'zh-CN', style : google.loader.themes.V2_DEFAULT});
  5.   google.setOnLoadCallback(function() {
  6.     var customSearchOptions = {};  var customSearchControl = new google.search.CustomSearchControl(
  7.       '搜索引擎ID', customSearchOptions);
  8.     customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
  9.     var options = new google.search.DrawOptions();
  10.     options.enableSearchboxOnly("搜索结果页面地址");
  11.     customSearchControl.draw('cse-search-form', options);
  12.   }, true);
  13. </script>
复制代码
后一段代码写入搜索结果页,代码如下:
  1. <div id="cse" style="width: 100%;">Loading</div>
  2. <script src="http://www.google.com/jsapi" type="text/javascript"></script>
  3. <script type="text/javascript">
  4.   google.load('search', '1', {language : 'zh-CN', style : google.loader.themes.V2_DEFAULT});
  5.   google.setOnLoadCallback(function() {
  6.     var customSearchOptions = {};  var customSearchControl = new google.search.CustomSearchControl(
  7.       '搜索引擎ID', customSearchOptions);
  8.     customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
  9.     customSearchControl.draw('cse');
  10.     function parseParamsFromUrl() {
  11.       var params = {};
  12.       var parts = window.location.search.substr(1).split('\x26');
  13.       for (var i = 0; i < parts.length; i++) {
  14.         var keyValuePair = parts[i].split('=');
  15.         var key = decodeURIComponent(keyValuePair[0]);
  16.         params[key] = keyValuePair[1] ?
  17.             decodeURIComponent(keyValuePair[1].replace(/\+/g, ' ')) :
  18.             keyValuePair[1];
  19.       }
  20.       return params;
  21.     }

  22.     var urlParams = parseParamsFromUrl();
  23.     var queryParamName = "q";
  24.     if (urlParams[queryParamName]) {
  25.       customSearchControl.execute(urlParams[queryParamName]);
  26.     }
  27.   }, true);
  28. </script>
复制代码
调试的时候把它放在栏目 自定义内容,发现多次引用的时候只有最后一个生效,前面的都会打开在本页面url后加“?search=test&x=35&y=5”作为搜索页地址,这个地址当然是不存在的。

请教版主,这个怎么调试能让它全部生效?另外用百度指定网址搜索的时候只要在输入框标签内加一个target="_blank"结果就会在新窗口打开,而这都是JS,target标签没处放呀,怎么调试才能让它在新窗口中打开搜索结果?

拜托啦!鞠躬啦!!!
如果问题能解决我将在下面贴出关键代码隐藏推广结果!
xiyou - 2012/5/31 16:08:00
看了半天真没有找到什么地方修改。
paullee - 2012/5/31 16:21:00
可以研究一下,他山之石呀,很优秀的东东
paullee - 2012/6/3 23:39:00
自己解决了
千羽网络 - 2012/6/4 17:27:00
怎么解决的,分享一下吧。
paullee - 2012/7/11 9:01:00
因为目标页面是框架结构,首先需要把目标页面做好另存一下,作为一个独立的页面.
其实修改搜索框
applevx - 2012/7/11 12:18:00
冒昧的问下啊,
如何调试、调用这两处搜索代码??

谢谢
applevx - 2012/7/11 14:50:00
不好意思,发帖重复了。

不过对于如何调用这两段搜索代码,我实在是很想能清楚呀,呵呵。
1
查看完整版本: 【已解决】谷歌站内搜索的多次调用问题,掌声有请xiyou闪亮登场!