0

これが私がカスタム検索に使用している私のコードです、

<div id="cse-search-form" style="width: 100%;">Loading</div>
<script src="http://www.google.com.pk/jsapi" type="text/javascript"></script>
<script type="text/javascript"> 
google.load('search', '1', {language : 'en', style : google.loader.themes.V2_DEFAULT});
$('input[@name=sr]').change(function() {
 if ($("input[@name=sr]:checked").val() == 'kw')              
    var qval = "kw"

 else 
    var qval = "gw"

});
google.setOnLoadCallback(function() {
var customSearchOptions = {};  var customSearchControl = new google.search.CustomSearchControl(
  '009317721292264254327:ce_olwjr2z4', customSearchOptions);
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);  
var qval = $("input[@name=sr]:checked").val();
var options = new google.search.DrawOptions();
options.setAutoComplete(true);  
options.enableSearchboxOnly("http://www.alhudapk.com/audios/search.html", qval);
customSearchControl.draw('cse-search-form', options);
}, true); 
</script>
<div style="margin-top: 10px;">
<input type="radio" name="sr" id="kw" value="kw" checked="checked"  />Audio
<input type="radio" name="sr" id="gw" value="gw" / >Web
</div>
<style type="text/css">
input.gsc-input, .gsc-input-box, .gsc-input-box-hover, .gsc-input-box-focus {
border-color: #D9D9D9;
}
input.gsc-search-button, input.gsc-search-button:hover, input.gsc-search-button:focus {
border-color: #2F5BB7;
background-color: #357AE8;
background-image: none;
filter: none;
}
.gsc-search-box {
margin-top: -5px !important; 
margin-bottom: -5px !important;
}

</style>

結果は単純な結果が必要です。

radio1がチェックされている場合

search.html?kw = mysearchkeyword

radio2がチェックされている場合?gw = mysearchkeyword

理由は、「kw」の場合は自分の個人検索を使用しており、Google Web検索の場合は、URLを渡すために「gw」パラメーターが必要なためです。

ページの読み込み後にコードが機能しません。1回だけ機能しますが、ページの読み込み後に値は変更されません。

4

1 に答える 1

1

いくつかの問題:

1)構文エラー:次input[@name=sr]のようにする必要がありますinput[name$=sr]

2)ローカル変数qvarには意味がありません

3) options.enableSearchboxOnlyラジオボタンを変更するたびに呼び出す必要があります。

代わりにこれを試してください:

        <script type="text/javascript">
            google.load('search', '1', {language : 'en', style : google.loader.themes.V2_DEFAULT});
            google.setOnLoadCallback(function() {
               var customSearchOptions = {};

               var customSearchControl = new google.search.CustomSearchControl(
                   '009317721292264254327:ce_olwjr2z4', customSearchOptions);
               customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);  

               var options = new google.search.DrawOptions();
               options.enableSearchboxOnly("http://www.alhudapk.com/audios/search.html",
                                          $("input[name$=sr]:checked").val() );
               options.setAutoComplete(true);  
               customSearchControl.draw('cse-search-form', options);

               $('input[name$=sr]').change(function() {
                   options.enableSearchboxOnly("http://www.alhudapk.com/audios/search.html",
                     $("input[name$=sr]:checked").val() );
                   customSearchControl.draw('cse-search-form', options);
              });

            }, true); 
       </script>
于 2012-04-06T18:10:06.603 に答える