2013-04-02 92 views
0

我試圖在我的網站上的div內放置谷歌新聞搜索。我目前使用的是谷歌提供的腳本,但是我是Ajax/JavaScript的新手。我能夠顯示來自Google新聞的最新報道,但不知道如何在div中顯示它,更不用說使用CSS操作樣式。以下是我正在使用的代碼。任何幫助將不勝感激!谷歌新聞框內div

<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> 

回答

0

如果我理解正確的,這是你所需要的:

創建<div>,並給它一個ID:

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

然後修改searchComplete funcion這樣的:

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/

沒有很多東西,你可以搞砸這裏。我認爲你可能有一個語法錯誤,並沒有檢查控制檯是否有錯誤。

+0

當我進行這些更改時,它似乎仍然沒有將文本放入容器中。還有什麼我應該加入? – bork121

+0

然後會發生什麼?你能更具體一點嗎?例如你可以嘗試調試你的代碼嗎?這在大多數瀏覽器中是可能的,並且可以提供有關錯誤的有用信息。 http://odetocode.com/blogs/scott/archive/2012/03/15/debugging-javascript-with-chrome.aspx – SoonDead

+0

另請檢查我的答案中的編輯。 – SoonDead