您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
2025/09 頃に何故か消滅したダウンロードボタンの簡易的な代替です。
// ==UserScript== // @name BingImageCreator 生成画像のダウンロードボタンを設置 // @description 2025/09 頃に何故か消滅したダウンロードボタンの簡易的な代替です。 // @namespace https://greasyfork.org/ja/users/1189800-ggg-niya-to // @version 1.0 // @include /https://www\.bing\.com/images/create/.+\?(.+&)?view=detailv2(&|$)/ // @compatible edge on PC / manager : Tampermonkey // @author ggg.niya.to // @license MIT // ==/UserScript== //////////////////////// // loadイベントが何故か発行されない場合の対策 (()=>{ var executed; function startup(){ if(executed){ return; } executed=true; main(); } addEventListener("load",startup); setTimeout(startup,1000); })(); //////////////////////// function main(){ // セレクター定数 const UL_SELECTOR=".actn_container UL",IMG_SELECTOR="#mainImageWindow .mainImage.current IMG"; // 監視とタイムアウト const OBS=new MutationObserver(setup); let timeout=true; setTimeout(()=>{ if(timeout){ alert("\""+UL_SELECTOR+"\" not found"); } },3000); OBS.observe(document.body,{ subtree:true, childList:true }); // 構築処理関数 function setup(){ // 追加場所を取得 const UL=document.querySelector(UL_SELECTOR); if(!UL){ return; } timeout=false; OBS.disconnect(); // アクションボタン const B=UL.appendChild(document.createElement("LI")).appendChild(document.createElement("DIV")); B.className="action"; B.role="button"; B.innerText="ダウンロード"; // ダウンロードリンク本体 const A=document.createElement("A"); document.body.appendChild(A).style.display="none"; // 本処理 let last; B.onclick=()=>{ // 前回のメモリがあれば解放 if(last){ URL.revokeObjectURL(last); last=null; } // ダウンロードする画像 const IMG=document.querySelector(IMG_SELECTOR); if(!IMG){ alert("\""+IMG_SELECTOR+"\" not found"); return; } // 画像をロードしてBlobからオブジェクトURLを生成し、それをリンク先に設定してダウンロード fetch(IMG.src).then((RESULT)=>{ if(!RESULT.ok){ alert("http-error : "+RESULT.status); return; } RESULT.blob().then((BLOB)=>{ A.href=last=URL.createObjectURL(BLOB); A.setAttribute("download",IMG.src.replace(/^.+\/|\?.+$/g,"").replace(/\./g,"_")); A.click(); }); }); }; } setup(); } ////////////////////////