附加到 URL 一次以在 Javascript 中重定向

Append to URL once for redirection in Javascript

我什么都不知道 Javascript 我正在尝试制作一个 Greasemonkey 脚本,当访问某个网站时,它会向 URL 添加一些内容,以便它自动重定向到那里.有问题的网站包含人物的视频和图片,当点击某人时我希望它自动附加必要的 link 以进行仅图片搜索。我已经用模型替换了代码中的实际网站,因为它不适合所有年龄段的人。这是我到目前为止的内容(请注意,注释标记应该在那里并且仍然可以读取):

// ==UserScript==
// @name        CostlyTwos Pictures Only
// @namespace   costlytwospo
// @description Automatically redirects to pictures-only when browsing CostlyTwos
// @include     http://www.costlytwos.com/html/a_links/*
// @include     www.costlytwos.com/html/a_links/*
// @version     1.0
// @run-at      document-start
// ==/UserScript==

window.location.href = window.location.href + "links/index1-default-pics.shtml";

这只是无限期地将 "links/index1-default-pics.shtml" 添加到 URL 的末尾。我还尝试添加一个 if 语句来检查单词 "default" 是否在 URL 中(该网站的 link 非常一致,因此不需要复杂的检查)以努力让它在完成后停止。该代码如下所示:

if (window.location.search.indexOf("default") != -1) {
window.location.href = window.location.href + "links/index1-default-pics.shtml";
}

然而,这完全没有任何作用,就好像脚本不存在一样。 Google 已经让我走了这么远,但由于我不知道 Javascript,我不确定从这里到哪里去。选择某人时,这个地方的典型 URL 如下所示:

www.costlytwos.com/html/a_links/NameHere/

NameHere 的纯图片 link 看起来像:

www.costlytwos.com/html/a_links/NameHere/links/index1-default-pics.shtml

That just repeatedly adds "links/index1-default-pics.shtml" to the end of the URL, indefinitely

这是因为脚本会在您导航到的每个页面上重新加载。当您完成导航时,它会再次调用脚本。

您有正确的直觉去检查 URL 是否已经是正确的格式。问题是测试不正确。

window.location.search.indexOf("default") != -1

你是 accessing the search property(URL 的 ?var=123 部分),而你可能想看的是 href 属性:

window.location.href.indexOf("default") != -1

即使使用此修复,如果 default 出现在 URL 中的任何位置(例如某人的用户名包含 "default"),那么您的脚本将不会进行重定向。您可能需要将 URL 分解成更多部分(使用 string.split or a regular expression 之类的东西)才能确保您的脚本没有错误。如果你走这条路,使用 window.location.pathname 可能比 window.location.href 属性.

更好