【问题标题】:Greasemonkey script to change a variable in the URL [duplicate]Greasemonkey脚本更改URL中的变量[重复]
【发布时间】:2010-05-10 04:44:59
【问题描述】:

在 Google Analytics(分析)的某些页面上,URL 中显示了一个变量。默认值为 10。URL 始终如下所示:
...&trows=10&...
有没有办法将其更改为 trows=100,以便默认显示的行数为 100? 谢谢

【问题讨论】:

    标签: javascript url greasemonkey


    【解决方案1】:
    if (/[\?&]trows=10[^\d]/i.test(document.location.href)) 
        document.location.replace(document.location.href.replace("trows=10","trows=100"));
    

    使用document.location.replace() 使后退按钮仍然有效。

    【讨论】:

    • 您对我的回答投了反对票,但您自己也使用location.replace(),您真的阅读过您指向的文档吗?
    • "您真的阅读了您所指向的文档吗?"是的,我有,你有吗?在您回答之前,请确保您知道我的代码中使用了两种不同的替换方法,一种是 String.prototype.replace,另一种是 window.location.replace,它们的方法非常不同。
    • @S.Mark 你不明白你在读什么,因为我看到你已经读过了。我猜想我为你拼写出来。如果我转到 A 页,然后是页面 B,我已经编写了用户脚本,用你的方法将我从页面 B 重定向到页面 C,然后当我按下返回时,我将转到页面 B,用户脚本将再次启动并将我发送到页面 C。所以历史看起来像 A->B->C,当我在页面 C 上按回时,我最终在页面 C,这是一个糟糕的用户体验。使用我的方法,历史看起来像 A->C,然后当我按下返回时,我将根据需要在页面 A 结束。你已经收到了吗?
    • @Eric,我明白这一点,但是您所说的 不能使用后退按钮 非常令人困惑,因为您可以看到相同的措辞 不能使用后退按钮 在文档中。你需要说,历史不应该被保存,所以当你使用返回按钮时,它会完全忽略 trows=10 页面。
    • 我不是故意侮辱你,如果我的话冒犯了你,对不起。让我收回我的话。 OP没有提到与后退按钮相关的情况,所以我只是以为你在说不同的东西。让我为此道歉。
    【解决方案2】:
    if (/trows=10(?!\d)/.test(location.href)) 
        location.href=location.href.replace("trows=10","trows=100");
    

    编辑:如果您想使用返回按钮返回到 trows=10 页面,请使用.assign 方法,而不是.replace,但由于您希望默认为 100,您可能不需要。

    location.assign(location.href.replace("trows=10","trows=100"));
    

    【讨论】:

    • 如果你使用 location.href=.. 那么后退按钮将不再起作用。
    • @Erik,感谢您对downvote 的评论,但他正在尝试将trows=10 替换为trows=100,显然,他不需要回到trows=10 页面,所以确实如此没关系。
    • "他不需要回到 trows=10 页面,所以没关系。"如果他在 pg A,然后转到 pg B(其中包含 trows=10)然后你的代码启动并将他发送到 pg C,然后如果他点击后退按钮,他将转到 pg B,这将重定向他到 pg C,因此后退按钮不适用于您的代码(如果不回击两次,他就无法到达 pg A)。
    【解决方案3】:

    是的。您可以修改页面链接,在 URL 中存在“错误”参数时重新加载页面(使用修改后的参数),或两者兼而有之。对于前者,XPath 对于查找链接非常有用(但不是必需的)。对于后者,可以修改window.location.search。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      相关资源
      最近更新 更多