// ==UserScript== // @name Download Bing Background Image - bing.com // @name:zh-CN 必应首页背景图片下载 // @description Add download button to Bing homepage. // @description:zh-CN 在必应首页右下角添加一个背景图片下载按钮 // @namespace Violentmonkey Scripts // @match https://*.bing.com/ // @grant none // @version 0.9 // @author Alvin // @license GNU GPLv3 // @run-at document-idle // @downloadURL https://update.greasyfork.icu/scripts/420171/Download%20Bing%20Background%20Image%20-%20bingcom.user.js // @updateURL https://update.greasyfork.icu/scripts/420171/Download%20Bing%20Background%20Image%20-%20bingcom.meta.js // ==/UserScript== function fileDownload(url, filename) { getBlob(url, function (blob) { saveAs(blob, filename) }) } function getBlob(url, cb) { var xhr = new XMLHttpRequest() xhr.open('GET', url, true) xhr.responseType = 'blob' xhr.onload = function () { if (xhr.status === 200) { cb(xhr.response) } } xhr.send() } function saveAs(blob, filename) { if (window.navigator.msSaveOrOpenBlob) { navigator.msSaveBlob(blob, filename) } else { var link = document.createElement('a') var body = document.querySelector('body') link.href = window.URL.createObjectURL(blob) link.download = filename // fix Firefox link.style.display = 'none' body.appendChild(link) link.click() body.removeChild(link) window.URL.revokeObjectURL(link.href) } } var parent = document.getElementById('sh_rdiv') if (parent) { parent.innerHTML += `
` var btn = document.getElementById('downBtn') btn.addEventListener( 'click', function () { var title = document.getElementById('sh_cp').title || document.getElementById('musCardImageTitle').innerHTML + ' ' + document.getElementById('musCardCopyright').innerHTML var bg = document.getElementById('bgDiv').style.backgroundImage var imgUrl = bg.slice(4, -1).replace(/"/g, '') var fileName = title + '.jpg' fileDownload(imgUrl, fileName) }, false ) } else { var styleElem = document.head.appendChild(document.createElement('style')) styleElem.innerHTML = '#downBtn::after {display: none;} .footer {width: 96% !important; padding: 0 2% !important;}' setTimeout(function () { var parentEl = document.getElementsByClassName('headline')[0] var parent = document.createElement('div') var el = parentEl.appendChild(parent) el.innerHTML = ` ` var btn = document.getElementById('downBtn') btn.addEventListener( 'click', function () { var card = document.getElementsByClassName('musCardCont')[0] var title = card.getElementsByClassName('title')[0].innerText var copyright = card.getElementsByClassName('copyright')[0].innerText var bg = ( document.getElementsByClassName('img_uhd')[0] || document.getElementsByClassName('img_cont')[0] ).style.backgroundImage var imgUrl = bg.slice(4, -1).replace(/"/g, '') var fileName = title + ' ' + copyright + '.jpg' fileDownload(imgUrl, fileName) }, false ) }, 1000) }