【发布时间】:2018-09-04 16:27:33
【问题描述】:
我正在尝试拦截 window.location.* 分配和 window.location.assign 调用以更改离开前分配的 url,这可能吗?
当我尝试重新定义属性设置器时,我收到一个错误,我无法重新定义它。
我唯一的选择是代理页面并用字符串替换静态替换对 window.location 的所有分配吗?
虽然我宁愿避免它,因为 javascript 很时髦,而且这样的东西也可能是有效的,所以我必须跟踪所有分配:
var l = window.location;
var c = l;
var t = c.assign;
t('...');
【问题讨论】:
-
这听起来像是X/Y problem。你认为你为什么要这样做?
-
@T.J.Crowder 我有一个代理,可以为我希望的任何网站提供服务。它挂钩所有 ajax 调用和所有资源获取,并通过代理传递它们。当脚本试图通过
window.location分配更改当前位置时会出现问题,我需要拦截它们以更改要通过代理传递的 url。例如window.location = 'http://www.google.com'->window.location = 'http://proxy-server/?url=http://www.google.com' -
@Jorayen - 有趣!
-
@Jorayen,这个问题好像已经过去几年了,你有没有得到满意的解决方案?
标签: javascript hook