jxhczhl / JsRpc

远程调用(rpc)浏览器方法,免去抠代码补环境
1.26k stars 313 forks source link

通过hook的方法注入js时产生错误 #10

Closed COCONUTwwater closed 1 year ago

COCONUTwwater commented 1 year ago

为了方便,我将JsEnv_Dev.js通过油猴hook,并且在后面添加了 window.demo = new Hlclient("ws://127.0.0.1:12080/ws?group=hello&name=search");

然后打开本地带有script的html文件 并且script中添加了远程调用3

demo.regAction("hello3", function (resolve,param) {
    //这里还是param参数 param里面的key 是先这里写,但到时候传接口就必须对应的上
    res=hlg(param["user"],param["status"])
    resolve(res);
})

但是console区域出现了报错,远程调用3失败了 Uncaught ReferenceError: demo is not defined

我试了将window.demo改成demo也不行

请问大佬window.demo = new Hlclient("ws://127.0.0.1:12080/ws?group=hello&name=search"); 这个是不能hook吗,或者有什么办法可以解决这个问题

jxhczhl commented 1 year ago

你应该去学习下油猴插件该怎么保持变量的。 你打开本地的html 在油猴的适配里面? (本地html只是写注册方法)? 我认为 油猴不是直接把环境和方法都补上吗 这样即使刷新任何网页 油猴适配到url后就带上js.

COCONUTwwater commented 1 year ago

你应该去学习下油猴插件该怎么保持变量的。 你打开本地的html 在油猴的适配里面? (本地html只是写注册方法)? 我认为 油猴不是直接把环境和方法都补上吗 这样即使刷新任何网页 油猴适配到url后就带上js.

本地除了注册方法也写了hlg这个调用到的方法

COCONUTwwater commented 1 year ago

你应该去学习下油猴插件该怎么保持变量的。 你打开本地的html 在油猴的适配里面? (本地html只是写注册方法)? 我认为 油猴不是直接把环境和方法都补上吗 这样即使刷新任何网页 油猴适配到url后就带上js.

我试了一下,html文件中的script内容似乎比油猴hook要先运行,那我找到原因了