来自Google的随机图像设置为背景,使用图片关键字查询

时间:2018-09-11 17:27:48

标签: javascript image random google-image-search

我有这个代码:

<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 = 'cute kittens';

    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>

应该给我一张小猫的照片,然后给它做背景,但是它没有给我任何背景,有人对如何解决这个问题有想法吗?如果您这样做,请帮助。这可能看起来像重复的,但是我从先前的帖子中获得了代码,但是它不起作用,所以请不要将其标记为重复的,我试图以多种方式修改代码,但没有任何效果,我丢失了不同的编辑内容设备关闭,所以我没有那些。 (我是一个糟糕的开发人员,没有保存)

1 个答案:

答案 0 :(得分:0)

该API自2011年以来似乎已被弃用。Google可能已完全关闭该服务,因为其弃用政策允许其根据以下条款之一进行操作

如果发生以下情况,Google保留自行决定立即停止提供全部或任何部分不赞成使用的服务的权利,恕不另行通知:

  • 提供过时的服务版本可能会造成Google合理善意判断所确定的巨大经济负担;或
  • 提供过时的服务版本可能会产生安全风险或重大技术负担,这是Google在其合理的善意判断中确定的。

https://developers.google.com/terms/deprecation

我将您的代码放在JSfiddle中:https://jsfiddle.net/zcthpd4L/6/,并遇到错误:

Uncaught TypeError: Cannot read property 'ImageSearch' of undefined
at OnLoad ((index):52)
at (index):70

这似乎不是由于配置问题引起的,很可能是由于该服务不再可用。最好的选择是使用自定义搜索API:https://developers.google.com/custom-search/