V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
leehon
V2EX  ›  问与答

油猴脚本阻止 setTimeout()运行的问题

  •  
  •   leehon · 2015-07-18 19:20:17 +08:00 · 3252 次点击
    这是一个创建于 3444 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个APP内嵌的网页,页面有个setTimeout()方法,如果不是APP打开,就调用location.href跳转到APP下载页面。我的想法是阻止或删除setTimeout(),这样就能在电脑浏览器打开了

    我在Chrome安装了油猴,对前端和油猴实在不了解。我试了dom的getElement系列方法,好像获取不到js函数;我查了一下clearTimeout()可以阻止setTimeout()运行,但需要setTimeout()返回的ID,页面是直接运行的,无ID可用……
    9 条回复    2015-07-18 21:26:32 +08:00
    tux
        1
    tux  
       2015-07-18 19:49:48 +08:00   ❤️ 1
    试试重定义页面的 "location.href" 方法,这样即使到时间调用,也不会跳了
    zsx
        2
    zsx  
       2015-07-18 19:50:53 +08:00   ❤️ 1
    window.setTimeout = function() { /*Your code here */ }
    kfll
        3
    kfll  
       2015-07-18 20:15:39 +08:00   ❤️ 1
    有挺多方法能完成你的需求的...

    比如看他判断是不是 app 的逻辑,随便劫持掉一个条件

    比如你说的 clearTimeout ,不知道 ID 的情况下,你从 0 清到 10000 大概也都清完了

    另外 location 是无法重定义的
    leehon
        4
    leehon  
    OP
       2015-07-18 21:15:03 +08:00
    我写了window.setTimeout=null;现在不跳转了,但是页面的其他js没办法执行了,不知道什么原因
    wkdhf233
        6
    wkdhf233  
       2015-07-18 21:23:13 +08:00
    https://addons.mozilla.org/zh-cn/firefox/addon/foxreplace/
    试试用这玩艺把location.href给替换掉?
    wkdhf233
        7
    wkdhf233  
       2015-07-18 21:24:07 +08:00
    槽,发完才看到你是扣肉党。。
    KCheshireCat
        8
    KCheshireCat  
       2015-07-18 21:24:50 +08:00
    设置
    // @run-at document-start
    来让脚本优先运行
    setTimeout = function(X) {'''};
    把setTimeout函数覆盖掉,如果有其他部分使用setTimeout函数,
    可以
    sT = setTimeout;
    setTimeout = function(X) {
    if( '某种对X参数的判断' ) sT(X);
    };
    iNaru
        9
    iNaru  
       2015-07-18 21:26:32 +08:00
    @leehon null的话,应该会抛出setTimeout is not a function的异常,中断js了吧。
    按楼上改为window.setTimeout = function(){}; 看看。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2470 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:56 · PVG 12:56 · LAX 20:56 · JFK 23:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.