在 Chrome console 如何引用页面中 webpack 打包出来的 module

2021-04-04 19:43:34 +08:00
 dingyaguang117
我想用油猴脚本实现过期自动重新登录功能。但是这个网站是 vue 写的,webpack 打包的。现在需要,需要修改 axios 的设置。目前查到 webpack 会在 window 对象设置 webpackJsonp 属性,然后通过他加载和引用 module 。请问各位大神,如果需要在外部引用 webpack 打包的 module 的引入示例,需要怎么做呢?
1887 次点击
所在节点    问与答
18 条回复
SoloCompany
2021-04-04 21:12:41 +08:00
必须通过 entry export 否则就像你所说的通过 webpackJsonp hack
renmu123
2021-04-04 21:20:11 +08:00
在油猴上直接请求登录的地址获取 token 后写入 localhost,不知道会不会触发跨域
renmu123
2021-04-04 21:20:53 +08:00
localstorge
xiadd
2021-04-04 21:23:22 +08:00
改成 umd 打包,提供对应的 api
dingyaguang117
2021-04-04 21:35:10 +08:00
@xiadd 项目不是我维护的,所以不能改代码
dingyaguang117
2021-04-04 21:36:05 +08:00
@renmu123 主要是这个 页面 token, 是直接通过设置 axios 全局属性的,在内存,改 localstorage 刷新页面才有用
dingyaguang117
2021-04-04 21:36:19 +08:00
@SoloCompany 跪求大神 Hack 方法
Mutoo
2021-04-04 22:41:00 +08:00
早期版本的 webpack 有泄漏问题,后来修复了。不过你可以试着通过 vue 元素直接 hack 进去 $anyVueElement.__vue__.axios 或者 __vue__.$axios
murmur
2021-04-04 23:57:58 +08:00
没有源代码的产品二次魔改?建议直接放弃
muzuiget
2021-04-05 00:49:23 +08:00
很难,你这个问题相当于问怎么访问函数里的闭包变量,JavaScript 本身不提供这个功能,所以无解。除非该变量在别的地方被引用,可以从 window 一直找下去。
ch2
2021-04-05 01:43:10 +08:00
没有源代码的情况下,你这个问题需要花费非常久的时间去逆向,还不一定有解
ysc3839
2021-04-05 05:44:28 +08:00
建议考虑别的方案。过期自动登录的话,脚本输入用户名密码然后点击登录不行吗?
ysc3839
2021-04-05 05:47:36 +08:00
@renmu123 可以用 GM_xmlhttpRequest 绕过跨域限制。
https://wiki.greasespot.net/GM.xmlHttpRequest
redbuck
2021-04-05 08:38:37 +08:00
axios 的浏览器适配器是 xhr,劫持它就完了
dingyaguang117
2021-04-05 10:25:47 +08:00
@Mutoo 谢谢这个思路不错, 不过这个项目 好像没有使用 Vue.use 绑定 axios, 我试了下 是 undefined
dingyaguang117
2021-04-05 10:26:32 +08:00
@muzuiget 确实,我找到了在闭包里面的引用, 但是好像确实没办法获取到
dingyaguang117
2021-04-05 10:28:03 +08:00
@ysc3839 主要是我希望能不 重新加载页面, 因为 重新加载之后当前页面很多状态就丢失了,需要重新录入。
dingyaguang117
2021-04-05 17:14:03 +08:00
@redbuck 您这个思路很靠谱,通过劫持了 XHR,实现了需要的功能! 谢谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/767977

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX