We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 6640899 commit ec3d072Copy full SHA for ec3d072
1 file changed
src/preload.js
@@ -945,9 +945,13 @@ async function injectUserscriptWhenReady() {
945
setupTurnstileCallbackBridge();
946
setupHexMd5Polyfill();
947
948
- // 在页面上下文执行 userscript。
949
- const runner = new Function(payload.scriptText);
950
- runner();
+ // 在页面上下文执行 userscript:通过注入 <script> 元素到页面世界。
+ const scriptEl = document.createElement("script");
+ // 为了便于调试,可以给脚本一个可识别的 sourceURL(不会影响安全性)。
951
+ scriptEl.textContent = String(payload.scriptText) + "\n//# sourceURL=elxmoj-userscript.js";
952
+ (document.documentElement || document.head || document.body).appendChild(scriptEl);
953
+ // 插入后即可移除标签;代码已经在页面上下文执行。
954
+ scriptEl.parentNode.removeChild(scriptEl);
955
956
window.__ELXMOJ_INJECTION_STATUS__ = {
957
ok: true,
0 commit comments