Add a button for downloading bing-daily-pictures.添加一个必应每日图片下载按钮。
当前为
// ==UserScript==
// @name Bing Daily Picture Download button|必应每日图片下载按钮
// @namespace https://greasyfork.org/en/users/131965-levinit
// @author levinit
// @description Add a button for downloading bing-daily-pictures.添加一个必应每日图片下载按钮。
// @include *://cn.bing.com/
// @include *://www.bing.com/
// @include *://www.bing.com/?*
// @include *://cn.bing.com/?*
// @run-at document-start
// @version 0.1.4
// @grant none
// ==/UserScript==
//定时器周期行检测今日必应图片是否加载成功
let timer = setInterval(function() {
//获取到今日必应图片信息后添加按钮 停止周期检测
if (getImg()) {
let imgInfo = getImg()
addBtn(imgInfo)
clearInterval(timer)
const downloadBtn = document.querySelector('#download-btn') //下载按钮
//用户前后切换了必应图片 图片地址和名称应该对应改变 当用户移动鼠标到图片上时进行检测
downloadBtn.onmouseover = function() {
const newInfo = getImg() //获取图片地址
if (this.href != newInfo.picUrl) {
//如果新获取的地址与下载按钮的地址不同 就更改为新地址和名字
this.href = newInfo.picUrl
this.download = newInfo.picName
}
}
}
}, 233)
//获取图片地址
function getImg() {
// 从行内css属性background-image中获取今日必应图片的url()
let picUrl = document.querySelector('#bgDiv').style.backgroundImage
//如果css属性background-image写在外部css或者style标签中
if (picUrl === '') {
let style0 = document.styleSheets[0]
let styles = style0.cssRules.length
for (let i = 0; i < styles; i++) {
if (style0.cssRules[i].selectorText === '#bgDiv') {
picUrl = style0.cssRules[i].style.backgroundImage
}
}
}
//图片地址
picUrl = picUrl.substring(5, picUrl.length - 2)
//图片名称
let picName = picUrl.substring(picUrl.lastIndexOf('/') + 1, picUrl.length)
return { picUrl, picName }
}
//添加下载按钮
function addBtn(imgInfo) {
//在必应首页添加下载按钮
let btn = document.createElement('a')
let text = null
if (navigator.language.indexOf('zh') >= 0) {
text = document.createTextNode('下载今日必应图片')
} else {
text = document.createTextNode('Download Today Bing Pictures')
}
btn.id = 'download-btn'
btn.style.cssText =
'display:inline-block;padding:0.25em;border-radius:0.25em;position:fixed;z-index:1000;right:20%;top:12%;background-color:#c3d1cf94;font-size: 1.5em;'
btn.download = imgInfo.picName
btn.href = imgInfo.picUrl
btn.appendChild(text)
document.body.appendChild(btn)
}