Javascript 在一个页面中执行多次google图像搜索

Javascript 在一个页面中执行多次google图像搜索,javascript,html,google-search-api,Javascript,Html,Google Search Api,我想写一个网页,可以生成图像从谷歌搜索得到动态。 这些图片的搜索词是不同的,所以我需要执行谷歌搜索几次,而我发现这是非常困难的。 我尝试使用谷歌提供的源代码修改这些代码,但它只能执行一次搜索: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <t

我想写一个网页,可以生成图像从谷歌搜索得到动态。 这些图片的搜索词是不同的,所以我需要执行谷歌搜索几次,而我发现这是非常困难的。 我尝试使用谷歌提供的源代码修改这些代码,但它只能执行一次搜索:

    <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
   <title>Google Search API Sample</title>
 <script src="https://www.google.com/jsapi"></script>
 <script type="text/javascript">

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

  var imageSearch;
    var keyword="sexy";

  function searchComplete() {


    // Check that we got results
    if (imageSearch.results && imageSearch.results.length > 0) {

      // Grab our content div, clear it.
      var contentDiv = document.getElementById('content');
      contentDiv.innerHTML = '';


      var results = imageSearch.results;
      for (var i = 0; i < results.length; i++) {
        // For each result image to the screen
        var result = results[i];
        var imgContainer = document.createElement('div');


        var newImg = document.createElement('img');

        // There is also a result.url property which has the escaped version
        newImg.src=result.tbUrl;

        imgContainer.appendChild(newImg);

        // Put our title + image in the content
        contentDiv.appendChild(imgContainer);
      }

      //clear search 
      imageSearch.clearResults();

    }
  }

  function OnLoad() {

    // Create an Image Search instance.
    imageSearch = new google.search.ImageSearch();

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

    imageSearch.execute(keyword);
  }


  function hi(){
      keyword="usa";
      alert('hi');
       google.setOnLoadCallback(OnLoad);
      imageSearch.execute(keyword);
  }  


 google.setOnLoadCallback(OnLoad);

</script>

 </head>
  <body style="font-family: Arial;border: 0 none;">
   <button value="hi" onClick="hi">hi</button>
<div id="content">Loading...</div>
</body>
</html>

谷歌搜索API示例
load('search','1');
var图像搜索;
var关键字=“性感”;
函数searchComplete(){
//检查我们是否有结果
if(imageSearch.results&&imageSearch.results.length>0){
//抓住我们的内容分区,清除它。
var contentDiv=document.getElementById('content');
contentDiv.innerHTML='';
var results=imageSearch.results;
对于(var i=0;i
程序只能在OnLoad方法中执行搜索。实际上,我曾多次尝试通过将google.setOnLoadCallback(OnLoad)放入hi()函数来调用它,但都没有成功。 希望有人能帮我解决这些问题。

hi
更改为


hi

hi
功能对我来说没有多大意义:

function hi(){
    keyword="usa";
    alert('hi');
    google.setOnLoadCallback(OnLoad);
    imageSearch.execute(keyword);
}
因为已经设置了
onLoadCallbak
,并且在
OnLoad
中执行了搜索。当搜索库已加载时调用。这只会在页面加载后的某个时间点发生一次

您需要在
hi
中执行的操作与在
OnLoad
中执行的操作相同:

// Create an Image Search instance.
imageSearch = new google.search.ImageSearch();

// set a DIFFERENT callback (if different handling require)
imageSearch.setSearchCompleteCallback(this, searchComplete, null);

// set "keyword" to what your next search should be for
imageSearch.execute(keyword);

朱利安-下面的答案有帮助吗?