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);
朱利安-下面的答案有帮助吗?