fix(Bangumi_Topic_Share): fix repeated screenshot failure caused by Live2D WebGL canvas and bump version to 4.4
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name Bangumi Topic Share
|
// @name Bangumi Topic Share
|
||||||
// @namespace http://tampermonkey.net/
|
// @namespace http://tampermonkey.net/
|
||||||
// @version 4.3
|
// @version 4.4
|
||||||
// @description Bangumi 话题分享工具:生成分享卡片,支持图片复制/下载、一键复制分享文案、可选 AI 标签
|
// @description Bangumi 话题分享工具:生成分享卡片,支持图片复制/下载、一键复制分享文案、可选 AI 标签
|
||||||
// @author Chang ji
|
// @author Chang ji
|
||||||
// @contributor Stardream
|
// @contributor Stardream
|
||||||
@@ -244,7 +244,20 @@
|
|||||||
|
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
if (cancelled) return;
|
if (cancelled) return;
|
||||||
const canvas = await html2canvas(document.querySelector('#capture-area'), { scale: 2, backgroundColor: null, useCORS: true });
|
let canvas;
|
||||||
|
try {
|
||||||
|
const timeout = new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), 10000));
|
||||||
|
canvas = await Promise.race([
|
||||||
|
html2canvas(document.querySelector('#capture-area'), {
|
||||||
|
scale: 2, backgroundColor: null, useCORS: true,
|
||||||
|
ignoreElements: (el) => el.tagName === 'CANVAS' && el !== document.querySelector('#capture-area')
|
||||||
|
}),
|
||||||
|
timeout
|
||||||
|
]);
|
||||||
|
} catch (e) {
|
||||||
|
showToast('✗ 截图失败,请刷新后重试');
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (cancelled) return;
|
if (cancelled) return;
|
||||||
|
|
||||||
const copyBtn = document.getElementById('bgm-copy-btn');
|
const copyBtn = document.getElementById('bgm-copy-btn');
|
||||||
|
|||||||
Reference in New Issue
Block a user