Custom Search Element V2は、V1と比較して、
などの違いがあります。Custom Search Element Control API | Google Developers
ただし2012年10月現在、V1のすべての機能が実装されているわけではなく、V1の代替となるものではありません。
Custom Search Element V2には、パラメータの設定方法の違いにより次の2種類があります。
種類 | パラメータの設定方法 |
---|---|
Custom Search elements | HTMLの属性 |
Custom Search Element Control API (V2) | JavaScript |
Custom Search Element Control APIは、Custom Search elementsをJavaScriptから操作するためのAPIです。
Custom Search elementsを表示する位置に、gcse名前空間の要素 (<gcse:xx>
) を記述します。
<gcse:search queryParameterName="query" enableHistory="true" enableAutoComplete="true"> </gcse:search>
そしてスクリプトを、カスタム検索エンジンIDを指定して読み込みます。
<script type="text/javascript">
var cx = '123:456'; // カスタム検索エンジンID
var gcse = document.createElement( 'script' );
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = ( document.location.protocol == 'https' ? 'https:' : 'http:' )
+ '//cse.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName( 'script' )[ 0 ];
s.parentNode.insertBefore( gcse, s );
</script>
検索ボックスの種類は、埋め込むタグの要素名によって選択できます。
種類 | 要素 | 説明 |
---|---|---|
標準 | <gcse:search> |
検索ボックスと検索結果を、同じ<div>に表示する。 |
2列 | <gcse:searchbox> |
A two-column layout with search results on one side and a search box on the other. If you plan to insert multiple elements in two-column mode in your webpage, you can use the gname attribute to pair a search box with a block of search results. |
<gcse:searchresults> |
||
検索ボックスのみ | <gcse:searchbox-only> |
独立した検索ボックス |
検索結果のみ | <gcse:searchresults-only> |
独立した検索結果 |
基本的な設定はCustom Search control panelで行えますが、個別にカスタマイズするときには<gcse:xx>
要素の属性として指定します。
種類 | 属性 | 型 | 説明 | 適用できる要素 |
---|---|---|---|---|
General | gname |
String | CSE要素の名前 | すべて |
autoSearchOnLoad |
Boolean | すべて | ||
enableHistory |
Boolean |
|
||
queryParameterName |
String | すべて | ||
resultsUrl |
URL | searchbox-only | ||
newWindow |
Boolean | searchbox-only | ||
Autocomplete | enableAutoComplete |
Boolean | すべて | |
autoCompleteMatchType |
String |
|
||
autoCompleteMaxCompletions |
Integer |
|
||
autoCompleteMaxPromotions |
Integer |
|
||
autoCompleteValidLanguages |
String |
|
||
Refinements | defaultToRefinement |
String | すべて | |
refinementStyle |
String |
|
||
Image search | enableImageSearch |
Boolean |
|
|
defaultToImageSearch |
Boolean | すべて | ||
imageSearchResultSetSize |
Integer, String | すべて | ||
imageSearchLayout |
String |
|
||
Web search | disableWebSearch |
Boolean |
|
|
webSearchResultSetSize |
Integer, String | すべて | ||
webSearchSafesearch |
String | すべて | ||
Search results | enableOrderBy |
Boolean | すべて | |
linkTarget |
String |
|
||
noResultsString |
String |
|
||
resultSetSize |
Integer, String | すべて | ||
safeSearch |
String | すべて | ||
Ads | adchannel |
String | すべて | |
adclient |
String | すべて | ||
adtest |
String | すべて | ||
Google Analytics | gaCategoryParameter |
String |
|
|
gaQueryParameter |
String |
|
JavaScriptでパラメータを指定する場合には、Custom Search elementsの代わりにCustom Search Element Control APIを使用します。
まずはCustom Search elementsを埋め込む要素を用意します。
<div id="test"></div>
スクリプト読み込み後に実行する初期化関数を、window.__gcseオブジェクトのcallbackプロパティに設定します。そしてCustom Search elementsのパラメータを、google.search.cse.elementオブジェクトのrender()メソッドから設定します。
<script type="text/javascript"> var InitCSE = function() { var componentConfig = { div: 'test', tag: 'search', attributes: { queryParameterName: 'query', enableHistory: true, enableAutoComplete: true } }; google.search.cse.element.render( componentConfig ); } window.__gcse = { parsetags: 'explicit', callback: function() { if( document.readyState == 'complete' ) { InitCSE(); } else { google.setOnLoadCallback( function () { InitCSE(); }, true ); } } }; </script>
以下のスクリプトの読み込みは処理は、Custom Search elementsと同一です。
<script type="text/javascript">
var cx = '123:456'; // カスタム検索エンジンID
var gcse = document.createElement( 'script' );
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = ( document.location.protocol == 'https' ? 'https:' : 'http:' )
+ '//cse.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName( 'script' )[ 0 ];
s.parentNode.insertBefore( gcse, s );
</script>