1

我正在尝试在我的网站中实施 Google 自定义搜索引擎。到目前为止,我已经能够更改我的片段布局,并显示 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

好吧,我终于找到了如何发布数据:

来自谷歌搜索引擎 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 回答