js 如何拦截 location.href,让页面的 location.href 都失效或者可以自定义跳转到其他页面?
html 的 a 标签也可以拦截, 具体可以搜索“js 阻止 a 标签跳转”。
但是 location.href 是一个属性,只要修改属性就会触发页面跳转,设置为任何值都无法让它失效。并且 href 属性也无法删除。难道没其他办法了呢?或者能不能获取到 location.href 这个事件并拦截,然后再自定义做自己想做的事。
html 的 a 标签也可以拦截, 具体可以搜索“js 阻止 a 标签跳转”。
但是 location.href 是一个属性,只要修改属性就会触发页面跳转,设置为任何值都无法让它失效。并且 href 属性也无法删除。难道没其他办法了呢?或者能不能获取到 location.href 这个事件并拦截,然后再自定义做自己想做的事。
taobao://是淘宝注册的 scheme,所以会打开淘宝,后面的 m.taobao.com 就是要打开的网页地址,如果输入 taobao://detail.tmall.com/item.htm?id=616270509106 就会打开一个天猫的服装商品页面
这只是其中一种手段
除非你把大部分函数都禁了 不然总有办法
@sleepm fetch event 不能阻止自定义 scheme,除非你想替换页面上的每一个 js
下面是修改 userAgent 的代码, 修改后 userAgent 字符串就变成”new_ua”了:
Object.defineProperty(navigator, ‘userAgent’, {
value: ‘new_ua’,
writable: false
});
console.log(navigator.userAgent);
https://stackoverflow.com/questions/16669046/android-webview-shouldoverrideurlloading-method