我有一个网站的想法,每次访问页面时背景都会不同。我希望使用Javascript从Google图片中获取任何图片,并将其放置为我的网站背景。基本上,每次刷新页面脚本就会从Google图像中获取一个随机图片,并将其作为背景或至少下载该图片。如何实现这一点,或者是否可能?
虽然需要进行许多自定义以使脚本按预期工作(包括设置延迟来处理速率限制;Google每个搜索请求的API有64个项目的速率限制),但可以通过Google Images完成。以下是使用Google Images api的基本示例:
<html>
<head>
<title></title>
<script src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('search', '1');
google.setOnLoadCallback(OnLoad);
var search;
//i suggest instead of this to make keywords list so first to pick random keyword than to do search and pick random image
var keyword = 'mountains';
function OnLoad()
{
search = new google.search.ImageSearch();
search.setSearchCompleteCallback(this, searchComplete, null);
search.execute(keyword);
}
function searchComplete()
{
if (search.results && search.results.length > 0)
{
var rnd = Math.floor(Math.random() * search.results.length);
//you will probably use jQuery and something like: $('body').css('background-image', "url('" + search.results[rnd]['url'] + "')");
document.body.style.backgroundImage = "url('" + search.results[rnd]['url'] + "')";
}
}
</script>
</head>
<body>
</body>
</html>
不过我可以建议一下:从flickr随机获取图片,这是另一个基本的代码(无限制):
<html>
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
var keyword = "mountains";
$(document).ready(function(){
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
{
tags: keyword,
tagmode: "any",
format: "json"
},
function(data) {
var rnd = Math.floor(Math.random() * data.items.length);
var image_src = data.items[rnd]['media']['m'].replace("_m", "_b");
$('body').css('background-image', "url('" + image_src + "')");
});
});
</script>
</head>
<body>
</body>
</html>
虽然不是技术上所要求的,但这可能有助于给随机性带来一些结构--您可以组成几个词典,包括动词、名词、形容词等,并用随机形容词-名词-动词的方式进行mad-lib,(例如,肥胖的斗牛犬奔跑),然后使用该搜索查询谷歌,并从结果中选择一个随机图片。这样,您可以潜在地减少不适当的结果,并根据用户选择的主题选择特定的词典。(例如,根据用户的喜好更改可用的名词)