Greasy Fork is available in English.

Bing Daily Picture Download button|必应每日图片下载按钮

Add a button for downloading bing-daily-pictures.添加一个必应每日图片下载按钮。

2017-12-11 일자. 최신 버전을 확인하세요.

질문, 리뷰하거나, 이 스크립트를 신고하세요.
// ==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)
}