ajax-hook
ajax-hook copied to clipboard
同时使用两个proxy的情况下,只执行了后一个proxy的内容
因为一些原因,页面注入了两段脚本,两段脚本相互独立,都分别打包进了ajax-hook,都使用了proxy方法。 当两段脚本同时使用的时候,表现于,只执行了后一段脚本的proxy内的代码,前一段脚本的proxy内容未执行。 例如,前一段脚本proxy操作写入参数1,后一段脚本proxy操作写入参数2。两段脚本同时使用,只会写入参数2。 怎样才能在这种情况下,两段脚本里的proxy都能执行到呢?表现为同时能写入参数1和2。
你可以fork一下修改源码的proxyAjax函数,存一下你传入的状态,然后需要增加一个函数,在你的proxy 写入参数2的时候执行一下,告诉脚本我要写入了(路过说两句,仅供参考)
你可以fork一下修改源码的proxyAjax函数,存一下你传入的状态,然后需要增加一个函数,在你的proxy 写入参数2的时候执行一下,告诉脚本我要写入了(路过说两句,仅供参考)
不行的,两段脚本都是独立维护的,意思是,都是不同的人维护。不能使用侵入式的方式
那你试试直接把那个闭包保存的方式换成静态变量,每次执行proxy都读一下
那你试试直接把那个闭包保存的方式换成静态变量,每次执行proxy都读一下
不能侵入式
那你试试直接把那个闭包保存的方式换成静态变量,每次执行proxy都读一下
不能侵入式
您好,您说的不能入侵式指的是不能自己维护一份定制版的ajax-hook是吗?还是说不能修改你页面的脚本?我上面的意思是自己二次开发一下ajax-hook
自己 fork 一份来开发到没啥,但为啥内部要做这个限制,是基于什么场景考虑的呢
// Avoid double hookAjax
win[realXhr] = win[realXhr] || win.XMLHttpRequest
https://github.com/wendux/ajax-hook/blob/9efea44c8b2bc27b5ec0e8c2e3a2477bdc76dab9/src/xhr-hook.js#L23
3.0.1版本支持了多次hook,可以更新下试试
3.0.1版本支持了多次hook,可以更新下试试
连续使用两次proxy(),还是只执行了后一个proxy的内容,是用法不对吗?有示例吗? 第一次用proxy(),第二次用hook()和两次都用hook()是可以的
可以看看:示例