Conversation
不要管他的次序 如果content script後載入 (通常都是這樣吧)
官方文件沒寫的都不管 |
|
没太明白,打错了? async function test() {
await chrome.userScripts.register([
{
id: "dispatchEvent",
js: [
{
code: `const ev = new CustomEvent('SC_SCRIPT_LOADED', {
detail:{uuid:"脚本uuid"},
});dispatchEvent(ev)`,
},
],
matches: ["https://content-security-policy.com/"],
runAt: "document_start",
},
]);
await chrome.userScripts.register([
{
id: "addEventListener",
js: [{ code: `addEventListener("SC_SCRIPT_LOADED", (event) => { console.log(event); })` }],
matches: ["https://content-security-policy.com/"],
runAt: "document_start",
},
]);
}
test(); |
|
哦,我好像明白你意思了, 脚本监听 SC_EARLY_START 发送 SC_SCRIPT_LOADED content/inject 监听 SC_SCRIPT_LOADED 发送 SC_EARLY_START 脚本收到 SC_EARLY_START 后,再发送一次 SC_SCRIPT_LOADED ,content/inject 判断 flag 有没有重复 |
要做兩個 Early script那邊做 addEventListener("SC_EARLY_START", xxxx) 做控制,注入GM的,準備好就發dispatchEvent("SC_EARLY_START", { ... 要給所有腳本的環境信息 ... } ) |
我沒留意 GM INFO由 content/inject交過去後要不要再有後續。 |

概述
// @early-start后,再删除,必定造成脚本报错,且恢复方法很隐蔽。 #870变更内容
截图