V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kisshere
V2EX  ›  程序员

js 怎样阻止页面中其它 js 的自动跳转并不弹出任何提示?

  •  
  •   kisshere · 312 天前 · 1919 次点击
    这是一个创建于 312 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如 www.a.com 页面中加载了一个文件:b.js ,在页面加载几秒后执行自动跳转到另一个网站 www.b.com 上去,那么怎样在 www.a.com 中引入一个 js ,阻止其该 b.js 执行自动跳转?如果用 beforeunload 还会弹出一个提示,怎样让该 js 静默的阻止 b.js 的跳转?
    5 条回复    2024-01-03 10:07:03 +08:00
    paledream
        1
    paledream  
       312 天前
    ```js
    window.onbeforeunload = () => false;
    ````
    这样试试
    Melting
        2
    Melting  
       312 天前
    要阻止可以覆盖原来的跳转函数逻辑,比如重写 setTimeout 或者 window.open
    ljtfdt
        3
    ljtfdt  
       312 天前
    1 、先看一下 b.js 里面的跳转逻辑,看看是使用那个函数来实现跳转
    2 、让 a.js 先于 b.js 加载
    3 、在 a.js 中覆盖 b.js 中使用的函数
    Liam1997
        4
    Liam1997  
       312 天前
    如果仅仅是为了完成需求的话,chrome 浏览器打开 network 面板就可以 block 掉指定资源了,也就是你这里所说的 b.js ,这个方案是最无脑、最快的 😂

    麻烦点的话,可以用 chrome search 下 b.js 里相关跳转代码(.open 、.href = 'xxx' 这种),然后加断点进行调试,定位到之后就很好办了,用 Charles 等代理工具或者 Chrome 内置的资源覆盖能力每次访问该网站的时候用本地 js override 掉 b.js
    devilarchitect
        5
    devilarchitect  
       311 天前
    直接点 把 b.js 的跳转代码注释掉;
    或者添加监听 addEventListener(),触发条件是有跳转操作的时候定义为锚链接(按你们业务来)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1041 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 23:04 · PVG 07:04 · LAX 15:04 · JFK 18:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.