@@ -825,16 +825,9 @@ export class RuntimeService {
825825 }
826826
827827 let retContent : chrome . scripting . RegisteredContentScript [ ] = [ ] ;
828- let retInject : chrome . userScripts . RegisteredUserScript [ ] = [ ] ;
829- // inject.js
830- const injectJs = await this . getInjectJsCode ( ) ;
831- if ( injectJs ) {
832- // 构建inject.js的脚本注册信息
833- retInject = this . compileInjectUserScript ( injectJs , {
834- excludeMatches,
835- excludeGlobs,
836- } ) ;
837- }
828+ const retInject : chrome . userScripts . RegisteredUserScript [ ] = [ ] ;
829+
830+ // ------ scripting.js ------
838831 // Note: Chrome does not support file.js?query
839832 // 注意:Chrome 不支持 file.js?query
840833 retContent = [
@@ -848,20 +841,41 @@ export class RuntimeService {
848841 } satisfies chrome . scripting . RegisteredContentScript ,
849842 ] ;
850843
844+ // ------ inject.js & content.js ------
845+ const jsonUAD = JSON . stringify ( this . userAgentData ) ;
846+ const injectJs = await this . getInjectJsCode ( ) ;
847+ if ( injectJs ) {
848+ // 构建inject.js的脚本注册信息
849+ const codeBody = `(function (UserAgentData) {\n${ injectJs } \n})(${ jsonUAD } )` ;
850+ const code = `${ codeBody } ${ sourceMapTo ( "scriptcat-inject.js" ) } \n` ;
851+ const script = {
852+ id : "scriptcat-inject" ,
853+ js : [ { code } ] ,
854+ matches : [ "<all_urls>" ] ,
855+ allFrames : true ,
856+ runAt : "document_start" ,
857+ excludeMatches : excludeMatches ,
858+ excludeGlobs : excludeGlobs ,
859+ world : "MAIN" ,
860+ } satisfies chrome . userScripts . RegisteredUserScript ;
861+ retInject . push ( script ) ;
862+ }
851863 const contentJs = await this . getContentJsCode ( ) ;
852864 if ( contentJs ) {
853- const codeBody = `(function () {\n${ contentJs } \n})()` ;
865+ // 构建 content.js 的脚本注册信息
866+ const codeBody = `(function (UserAgentData) {\n${ contentJs } \n})(${ jsonUAD } )` ;
854867 const code = `${ codeBody } ${ sourceMapTo ( "scriptcat-content.js" ) } \n` ;
855- retInject . push ( {
868+ const script = {
856869 id : "scriptcat-content" ,
857870 js : [ { code } ] ,
858871 matches : [ "<all_urls>" ] ,
859872 allFrames : true ,
860873 runAt : "document_start" ,
861- world : "USER_SCRIPT" ,
862874 excludeMatches,
863875 excludeGlobs,
864- } satisfies chrome . userScripts . RegisteredUserScript ) ;
876+ world : "USER_SCRIPT" ,
877+ } satisfies chrome . userScripts . RegisteredUserScript ;
878+ retInject . push ( script ) ;
865879 }
866880
867881 return { content : retContent , inject : retInject } ;
@@ -1305,27 +1319,6 @@ export class RuntimeService {
13051319 return await runScript ( this . msgSender , res ) ;
13061320 }
13071321
1308- compileInjectUserScript (
1309- injectJs : string ,
1310- { excludeMatches, excludeGlobs } : { excludeMatches : string [ ] | undefined ; excludeGlobs : string [ ] | undefined }
1311- ) {
1312- // 构建inject.js的脚本注册信息
1313- const codeBody = `(function (UserAgentData) {\n${ injectJs } \n})(${ JSON . stringify ( this . userAgentData ) } )` ;
1314- const code = `${ codeBody } ${ sourceMapTo ( "scriptcat-inject.js" ) } \n` ;
1315- const script : chrome . userScripts . RegisteredUserScript = {
1316- id : "scriptcat-inject" ,
1317- js : [ { code } ] ,
1318- matches : [ "<all_urls>" ] ,
1319- allFrames : true ,
1320- world : "MAIN" ,
1321- runAt : "document_start" ,
1322- excludeMatches : excludeMatches ,
1323- excludeGlobs : excludeGlobs ,
1324- } ;
1325-
1326- return [ script ] as chrome . userScripts . RegisteredUserScript [ ] ;
1327- }
1328-
13291322 scriptMatchEntry (
13301323 scriptRes : ScriptRunResource ,
13311324 o : {
0 commit comments