脚本体验师001
发表于 2023-6-5 00:05:51
cxxjackie 发表于 2023-6-4 22:43
我没这个云盘账号来测试,但大致能推测出原因:第一种情况是因为页面中本身就有div,elmGetter.get几乎是 ...
谢谢老师解答
第二种 改成 script.onload = e => e.isTrusted && resolve(e); 等不到返回值了
这个页面 Vue.version = '2.7.10'
目前我猜还是和 MutationObserver 有关系,因为页面启动后30秒直接loadScript是成功的
王一之
发表于 2023-6-5 10:25:00
脚本体验师001 发表于 2023-6-4 19:44
排查到了,是GM_log(div);因为GM_log只能打印基础类型,div就出问题报错了
脚本体验师001
发表于 2023-6-5 11:34:14
王一之 发表于 2023-6-5 10:25
排查到了,是GM_log(div);因为GM_log只能打印基础类型,div就出问题报错了
哦哈,看我一下就发现两个问题,但这都是小问题避开即可
MutationObserver 到底和页面啥啥有私仇还是旧恨具体原因找起来怕是很难,暂且搁置
谢谢老师们
脚本体验师001
发表于 2023-6-5 19:59:32
本帖最后由 脚本体验师001 于 2023-6-5 20:00 编辑
cxxjackie 发表于 2023-6-4 22:43
我没这个云盘账号来测试,但大致能推测出原因:第一种情况是因为页面中本身就有div,elmGetter.get几乎是 ...
这简直罪过,怎么可以对 MutationObserver 产生哪怕一丝丝的怀疑,简直就是对神灵的亵渎
MutationObserver 牌子硬,站的稳,又帅,免检值得信赖
我发现使用Object.defineProperty对vue数据进行监听,同样会出现这个问题
cxxjackie
发表于 2023-6-5 22:19:55
脚本体验师001 发表于 2023-6-5 00:05
谢谢老师解答
第二种 改成 script.onload = e => e.isTrusted && resolve(e); 等不到返回值了
调试了一下,简单来说就是,页面在某一时刻将appendChild劫持了,并在处理结束后将其还原:
!(data/attachment/forum/202306/05/221803ut7l16wt1mt2hga7.png)
当检测到插入的标签是link、style或script时触发一个伪造的load事件,阻止其创建并在`#__qiankun_microapp_wrapper_for_micro_home_main__`这个元素下生成了一条记录。
解决方法可以改用append来插入,或者调用appendChild的原始引用:
```js
Node.prototype.appendChild.call(document.head, script);
```
脚本体验师001
发表于 2023-6-5 22:54:19
cxxjackie 发表于 2023-6-5 22:19
调试了一下,简单来说就是,页面在某一时刻将appendChild劫持了,并在处理结束后将其还原:
!
就这么轻而易举的就找到原因了!
俺真是五体投地全身心的佩服
用我夸人的最华丽的辞藻来说,老师好棒棒!!!!!!
mihaty
发表于 2023-9-9 14:01:14
@李恒道 @cxxjackie 两位大佬,请问外部库可以改成本地路径吗?例如 // @require C:/JScript/ElementGetter.js 万分感谢
cxxjackie
发表于 2023-9-9 22:57:44
mihaty 发表于 2023-9-9 14:01
@李恒道 @cxxjackie 两位大佬,请问外部库可以改成本地路径吗?例如 // @require C:/JScript/ElementGetter ...
可以,这样写就行:
// @require file:///C:/JScript/ElementGetter.js
油猴需要改一下设置:安全 -> 允许脚本访问本地文件(所有或者外部)
浏览器可能还需要额外设置一下,允许插件访问文件网址,这个不同浏览器的设置方式不同,一般是默认开启的。
李恒道
发表于 2023-9-10 02:03:21
mihaty 发表于 2023-9-9 14:01
@李恒道 @cxxjackie 两位大佬,请问外部库可以改成本地路径吗?例如 // @require C:/JScript/ElementGetter ...
https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=1550
szzxc
发表于 2023-11-1 18:12:58
const elmGetter = new ElementGetter(); 一加载这个语句,网页有些内容就不正常了。有什么办法解决么?
页:
1
2
3
4
5
6
7
8
9
10
[11]
12
13
14
15