javascript - div 中的 Google 新闻框

标签 javascript css ajax

我想在我网站的一个 div 中放置一个谷歌新闻搜索。我目前正在使用谷歌提供的脚本,但我是 Ajax/JavaScript 的新手。我能够显示来自谷歌新闻的最新故事,但不知道如何在 div 中显示它,更不用说使用 CSS 来操纵样式了。下面是我正在使用的代码。任何帮助将不胜感激!

<script type="text/javascript">

    google.load('search', '1');

    var newsSearch;

    function searchComplete() {

      // Check that we got results
      document.getElementById('averagecontainer').innerHTML = '';
      if (newsSearch.results && newsSearch.results.length > 0) {
        for (var i = 0; i < newsSearch.results.length; i++) {

          // Create HTML elements for search results
          var p = document.createElement('p');
          var a = document.createElement('a');
          a.href = newsSearch.results[i].url;
          a.innerHTML = newsSearch.results[i].title;

          // Append search results to the HTML nodes
          p.appendChild(a);
          document.body.appendChild(p);
        }
      }
    }

    function onLoad() {

      // Create a News Search instance.
      newsSearch = new google.search.NewsSearch();

      // Set searchComplete as the callback function when a search is 
      // complete.  The newsSearch object will have results in it.
      newsSearch.setSearchCompleteCallback(this, searchComplete, null);

      // Specify search quer(ies)
      newsSearch.execute('Barack Obama');

      // Include the required Google branding
      google.search.Search.getBranding('branding');
    }

    // Set a callback to call your code when the page loads
    google.setOnLoadCallback(onLoad);

    </script>

最佳答案

如果我没理解错的话,这就是你需要的:

创建 <div>并给它一个 ID:

<div id="your-div">HERE BE NEWS</div>

然后像这样修改 searchComplete 函数:

function searchComplete() {

  var container = document.getElementById('your-div');
  container.innerHTML = '';

  if (newsSearch.results && newsSearch.results.length > 0) {
    for (var i = 0; i < newsSearch.results.length; i++) {

      // Create HTML elements for search results
      var p = document.createElement('p');
      var a = document.createElement('a');
      a.href = newsSearch.results[i].url;
      a.innerHTML = newsSearch.results[i].title;

      // Append search results to the HTML nodes
      p.appendChild(a);
      container.appendChild(p);
    }
  }
}

关于样式操作,可以通过css中给定的ID来匹配元素。例如像这样:

#your-div a {
    font-weight: bold;
}

编辑:

为了向您展示这是有效的,我创建了一个 jsfiddle:http://jsfiddle.net/enjkG/

这里没有太多你可以搞砸的事情。我认为你可能有语法错误并且没有检查控制台是否有错误。

关于javascript - div 中的 Google 新闻框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15771662/

相关文章:

javascript - 无法调用 JS 进行验证 (JSF)

javascript - jQuery 检查平板电脑?

javascript - 是否有任何 jQuery 插件可以使任何计算机上的表单元素看起来像 mac 表单元素?

javascript - 多重继承和多次调用父构造函数

javascript - jQuery 中的事件相互依赖

javascript - 在 excel 中生成 html 页面的布局而不是在 css 中创建是否有益?

javascript - 如何自定义OpenERP 6.1 WebClient HTML DOM?

html - 如何切断左侧的溢出

javascript - 用于 ajax 的 JSON 世界市场 api 中的多个键和值

javascript - 如何对 ng-click 激活的函数进行回调?