ja werd ich mal nachher machen.
AutoSaveScreenshot.uc.js funktioniert nicht mehr
-
omar1979 -
28. November 2024 um 23:20 -
Erledigt
-
-
werd ich mal nachher machen.
Eben getestet, funktioniert auch im Nightly 135 einwandfrei.
-
Hast du mal Firefox neugestartet und dabei den Skript-Cache geleert? Zum Beispiel mit Rechtsklick auf das Symbol des Restart-Skripts. Vielleicht klemmt da nur etwas.
-
-
Ich mache mal nach 15 Monaten weiter.
Mein Script funktionierte bis gestern noch, jetzt nicht mehr. Auch nicht das hier aus #11.
Ein Klick auf das Symbol öffnet nur die Auswahl für Seite/Site.
Ich weiß, das ist ein Luxusproblem. Aber seit Jahren daran gewöhnt, möchte ich mich ungern umstellen. Vielleicht kann ja jemand helfen.
JavaScript
Alles anzeigen// ==UserScript== // @name AutoSaveScreenshot.uc.js // @description 一键保存截图,左键单击保存可见范围,Shift+左键保存整个页面 // @namespace https://github.com/benzBrake/FirefoxCustomize // @author Ryan, aborix // @include main // @license MIT License // @compatibility Firefox 127 // @homepageURL https://github.com/benzBrake/FirefoxCustomize/tree/master/userChromeJS // @downloadURL https://github.com/benzBrake/FirefoxCustomize/raw/master/127/AutoSaveScreenshot.uc.js // @version 0.0.3 // @note 0.0.3 修复总是在第一个窗口截图的问题 // @note 0.0.2 修复在 127 版本的兼容问题 // ==/UserScript== (async function () { // const Services = globalThis.Services || ChromeUtils.import("resource://gre/modules/Services.jsm").Services; const CustomizableUI = globalThis.CustomizableUI || ChromeUtils.import("resource:///modules/CustomizableUI.sys.mjs").CustomizableUI; document.addEventListener('DOMContentLoaded', async (e) => { const { location } = e.target; if (location.href.startsWith("chrome://browser/content/screenshots/screenshots-preview.html?")) { let preview_area = await new Promise(resolve => { let count = 0; let timer = setInterval(() => { let area = e.target.documentElement.querySelector("screenshots-preview"); count++; if (area) { clearInterval(timer); resolve(area); } if (count > 300) { clearInterval(timer); reject(null); } }, 10); }); if (preview_area) { let download_btn = await new Promise(resolve => { let count = 0; let timer = setInterval(() => { let btn = preview_area.shadowRoot.querySelector("#download"); count++; if (btn) { clearInterval(timer); resolve(btn); } if (count > 300) { clearInterval(timer); reject(null); } }, 10); }); download_btn.click(); } } }) window.AutoSaveScreenshot = { BTN_ID: "AutoSaveScreenshot-button", init() { if (!(CustomizableUI.getWidget(this.BTN_ID) && CustomizableUI.getWidget(this.BTN_ID).forWindow(window)?.node)) { CustomizableUI.createWidget({ id: this.BTN_ID, removable: true, defaultArea: CustomizableUI.AREA_NAVBAR, type: "custom", onBuild: doc => this.createButton(doc) }); } }, createButton(doc) { let btn = createElement(doc, 'toolbarbutton', { id: this.BTN_ID, label: "AutoSaveScreenshot", tooltiptext: 'Screenshots\nLinks-Klick: Sichtbarer Bereich\nShift + Links-Klick: Ganze Seite', 'data-l10n-id': 'auto-save-screenshot', class: 'toolbarbutton-1 chromeclass-toolbar-additional', style: 'list-style-image: url(file:///C:/Users/geldh/AppData/Roaming/Mozilla/Firefox/Profiles/rq9bmbv4.Neustart/chrome/Icons/Screenshot.png)', }); btn.addEventListener('click', this, false); return btn; }, handleEvent(event) { if (event.button === 0) { this.takeScreenshot(event.target.ownerDocument, event.shiftKey); } }, async takeScreenshot(doc, isFullPage) { doc.getElementById('key_screenshot').doCommand(); let btn = await this.getScreenSortButton(doc, isFullPage); btn.click(); }, async getScreenSortButton(doc, isFullPage) { let screenshotsPagePanel = await new Promise(resolve => { let interval = setInterval(() => { let screenshotsPagePanel = doc.getElementById("screenshotsPagePanel"); if (screenshotsPagePanel) { clearInterval(interval); resolve(screenshotsPagePanel); } }, 10); }); return screenshotsPagePanel.querySelector("screenshots-buttons").shadowRoot.querySelector(isFullPage ? "#full-page" : "#visible-page"); } } window.AutoSaveScreenshot.init(); /** * 创建 DOM 元素 * * @param {Document} d HTML 文档 * @param {string} t DOM 元素标签 * @param {Object} o DOM 元素属性键值对 * @returns */ function createElement(d, t, o = {}) { if (!d) return; let e = /^html:/.test(t) ? d.createElement(t) : d.createXULElement(t); for (let [k, v] of Object.entries(o)) { e.setAttribute(k, v); } return e; } })() -
Nachdem ich das Original jetzt mehrfach probiert habe komme ich zu dem Schluss, dass ich das Script nicht mehr brauche. Es musste im Laufe der Jahre auch immer wieder angepasst werde, meist von aborix .
Meine Anfrage ist damit erledigt.
-
Jika Anda ingin menyimpan tangkapan layar, Anda dapat menggunakan AutoSaveScreenshot.js.js.
FirefoxCustomize/userChromeJS/ScreenshotTools.uc.js at master · benzBrake/FirefoxCustomizeRyan 收集的 Firefox 个性化相关资源. Contribute to benzBrake/FirefoxCustomize development by creating an account on GitHub.github.com -