From 9b4b06a3ebe5bae05d8de05e9e508a7b2582e0a5 Mon Sep 17 00:00:00 2001 From: Rintim Date: Sun, 21 Apr 2024 20:59:55 +0800 Subject: [PATCH] feat: character direct image support. --- noname/init/polyfill.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/noname/init/polyfill.js b/noname/init/polyfill.js index 1f25b12d0..3f4dede17 100644 --- a/noname/init/polyfill.js +++ b/noname/init/polyfill.js @@ -165,8 +165,13 @@ Reflect.defineProperty(HTMLDivElement.prototype, "setBackground", { nameinfo = get.character(name); } } - if (!modeimage && nameinfo && nameinfo[4]) + let imgPrefixUrl; + if (!modeimage && nameinfo && nameinfo[4]) { for (const value of nameinfo[4]) { + if (value.startsWith("img:")) { + imgPrefixUrl = value.slice(4); + break; + } if (value.startsWith("ext:")) { extimage = value; break; @@ -181,7 +186,9 @@ Reflect.defineProperty(HTMLDivElement.prototype, "setBackground", { break; } } - if (extimage) src = extimage.replace(/^ext:/, "extension/"); + } + if (imgPrefixUrl) src = imgPrefixUrl; + else if (extimage) src = extimage.replace(/^ext:/, "extension/"); else if (dbimage) { this.setBackgroundDB(dbimage.slice(3)); return this; @@ -225,6 +232,8 @@ HTMLDivElement.prototype.setBackgroundImage = function (img) { .unique() .map((v) => `url("${lib.assetURL}${v}")`) .join(","); + } else if (URL.canParse(img)) { + this.style.backgroundImage = `url("${img}")`; } else { this.style.backgroundImage = `url("${lib.assetURL}${img}")`; }