【问题标题】:Combining bookmarklets to create a toggle between two URL组合小书签以在两个 URL 之间创建切换
【发布时间】:2015-08-26 20:08:07
【问题描述】:

这基本上是Combining Bookmarklets to create a toggle between HTTP and HTTPS?的变体

我想将以下两个小书签合二为一:

javascript:q=(document.location.href);location=location.href.replace('dp','gp/aw/d')
javascript:q=(document.location.href);location=location.href.replace('gp/aw/d','dp')

即基本上在服务器上的两个目录之间切换。

这不起作用(或仅适用于其中一种情况,即它不切换 'dp' 情况)。

javascript:q=(document.location.href);location=location.href.replace('dp','gp/aw/d').replace('gp/aw/d','dp');

任何(正则表达式)改进,例如因此,欢迎切换只会捕获 url 中第一次出现的“dp”。

【问题讨论】:

    标签: javascript regex url bookmarklet


    【解决方案1】:

    你是说

    javascript:(
      function() { 
        var loc=location.href;
        loc = loc.indexOf("dp")!=-1?loc.replace('dp','gp/aw/d'):loc.replace('gp/aw/d','dp');
        location=loc;})()
    

    【讨论】:

    • 嗯,这比我预期的要多(我认为按照提到的 http(s) 示例对我的代码进行小的调整就足够了),但它似乎只是完成了这项工作很好。
    • 您的代码会立即将更改改回 - 而且我的代码正在使用立即执行的匿名函数 (IIFE)。比只执行语句更安全
    • 代码变回:这就是我的想法。我认为它只需要一点点改变。
    • 匿名函数:好点。仅供参考,我在这里阅读了它:code.tutsplus.com/tutorials/…“将您的代码整齐地包装在匿名函数中将确保零命名冲突。此外,JavaScript 新手会感到困惑并认为您是神,如果您'喜欢那种事情。 ;)
    • 小书签中发生的另一件事是javascript:some code that returns an object,然后在运行时在浏览器中显示为[Object Object]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    相关资源
    最近更新 更多