前言

不知道为什么,之前网站获取必应壁纸的请求突然失效了,菜鸡如我又不怎么会Php,思前想后,决定写个脚本用来暂时替代了

正文

脚本本身其实很简单,只有三步

一、创建按钮

这里用// @require JQuery 引入了JQuery,方便操作DOM
所以第一步的操作也很简单

$('input[type="submit"]').after()

我用了上面的方法将新的按钮附加在了原有的后面

二、发起请求

但是到第二部这里,碰到了常有的问题 CORS跨域请求

想来想去,包括谷歌浏览器跨域插件,或者JQ的跨域等,都没有较好的方法。这时候我突发奇想,搜索了下油猴跨域,突然就get到了GM_xmlhttpRequest

使用// @grant GM_xmlhttpRequest 引入后

// 我将请求写到了点击事件里
GM_xmlhttpRequest({
  type: 'GET',
  url: 'https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1',
  headers: { "Content-Type": "application/json" },
  onload: function(res) {
    console.log(res.responseText)
  }
})

这里直接控制台输出确保数据无误

三、替换链接

替换链接其实很简单

不过首先要先获得返回的JSON数据中对应的url

这里使用了eval将JSON字符串解析为JSON数据

  var json = eval('(' + res.responseText + ')') // JSON 对象
  var url = json['images'][0]['url'] // 提取url
  url = 'https://cn.bing.com' + url // 拼接域名
  document.getElementsByTagName('input')[0].value = url // 替换链接

结语

至此大功告成,提交一下链接就可以替换网站背景图片了

Last modification:March 28th, 2020 at 10:38 am
如果觉得我的文章对你有用,请随意赞赏