1

Google カスタム検索エンジンを自分の Web サイトに実装しようとしています。これまでのところ、スニペットのレイアウトを変更し、Google がその例で示している変数を表示することができました。

http://googleajaxsearchapi.blogspot.com.es/2010/04/rendering-custom-data-in-custom-search.html

まあ、例では、すべてが素晴らしく見えます。なぜなら、彼らは印刷するかもしれない値を知っているからです。つまり、このスニペットが表示された場合:

<div id="mysite_thumbnail">
  <div data-if="Vars.thumbnail" class="gs-image-box gs-web-image-box">
    <a class="gs-image" data-attr="{href:url, target:target}">
      <img class="gs-image" data-attr="{src:thumbnail.src, width:48, height: 48}"/>
    </a>
  </div>
</div>

「Vars」が GSE が印刷しているデータを保持していることは明らかです。私の問題は、「Vars」が何を保持しているのかわからないことです。ビューを作成するときに、値がそこにあるかどうか、その名前は何なのかわかりません。

問題は、「Vars」を印刷するにはどうすればよいかということです。jsapiから取得できるjs変数だと思いますが、推測では、 console.log() は機能していませんでした:(

4

1 に答える 1

1

さて、私は最終的にデータを投稿する方法を見つけました:

Google 検索エンジン API のドキュメントから:

https://developers.google.com/custom-search/docs/js/rendering?hl=es&csw=1#richsnip

スニペットに次のコードを追加するだけです。

<span data-body="JSON.stringify(Vars)"></span>

したがって、次のようになります。

<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
      // Load the Search API
      google.load('search', '1');

      // Set a callback to load the Custom Search Control when you page loads
      google.setOnLoadCallback(
      function(){
         new google.search.CustomSearchControl('XXXXXXXXXXXXXXX').draw('cse');
         google.search.Csedr.addOverride("mysite_");
      },
      true);

      console.log(google);
</script>

   <div style="display:none">
      <div id="mysite_thumbnail">

         //This will show all Vars content
         <span data-body="JSON.stringify(Vars)"></span>

         <div data-if="Vars.thumbnail" class="gs-image-box gs-web-image-box">
            <a class="gs-image" data-attr="{href:url, target:target}">
               <img class="gs-image" data-attr="{src:thumbnail.src, width:48, height: 48}"/>
            </a>
         </div>
         <div data-ifel="Vars.thumbnail == 0" class="gs-image-box gs-web-image-box">
            <a class="gs-image" data-attr="{href:url, target:target}">
               <img class="gs-image" data-attr="{src:'XXXXX.png', width:115, height: 90}"/>
            </a>
         </div>
      </div>

      <div id="mysite_webResult">
         <div class="gs-webResult gs-result"
            data-vars="{longUrl:function() {
            var i = unescapedUrl.indexOf(visibleUrl);
            return i < 1 ? visibleUrl : unescapedUrl.substring(i);}}">
            <table>
               <tr>
                  <td valign="top">
                     <div data-if="Vars.richSnippet" data-attr="0"
                        data-body="render('thumbnail',richSnippet,{url:unescapedUrl,target:target})"></div>
                  </td>

                  <td valign="top">
                     <div class="gs-title">
                        <a class="gs-title" data-attr="{href:unescapedUrl,target:target}"
                           data-body="html(title)"></a>
                     </div>
                     <div class="gs-snippet" data-body="html(content)"></div>
                  </td>
               </tr>
            </table>
         </div>
      </div>
   </div>
于 2013-08-12T07:34:50.047 に答える