【问题标题】:Adding text to the beginning of url with JavaScript使用 JavaScript 在 url 的开头添加文本
【发布时间】:2018-03-20 23:27:30
【问题描述】:

我正在尝试制作一个书签。它应该测试 url 是否包含某个单词,如果没有,它将对其进行编码并在 url 的开头添加一些文本。到目前为止,我已经弄清楚了如何测试这个词。我使用的代码如下:

if (document.location.href.indexOf('math') === -1){ 
    alert("Math detected");
}

我想像这样对 url 进行编码:如果它检测到的 url 是这样的,http://www.coolmath-games.com/ 它应该重定向到tunneler.pw/index.php?q=http%3A%2F%2Fwww.coolmath-games.com%2F。理想情况下,它不会使用正则表达式,但如果使用也没什么大不了的。

如果它没有检测到这个词,它就不应该做任何事情。


编辑:如果有人好奇,这里是转换为书签形式的代码。

javascript:void%20function(){-1===document.location.href.indexOf(%22math%22)%26%26alert(%22Math%20detected%22)}();

【问题讨论】:

  • 你可以使用encodeURIComponent这个
  • 是的,我试过了,我想我可以让它工作,但我遇到真正麻烦的部分是将文本添加到转换后的 url 的开头。
  • 其实我没有理解你想编码 url 并使用查询字符串 oarama 进行 redict 吗?
  • 如果math 必须是域的一部分,则必须在 url 的域部分中匹配它。就像 ^(?:https?://)?([^/?]*?math[^/?]*?)(?=/|$) 替换为 tunneler.pw/index.php?q=http%3A%2F%2F$1%2F

标签: javascript regex url bookmarklet


【解决方案1】:

试试这个:

if (document.location.href.indexOf('blocked') === -1){ 
    document.location.href = "http://tunneler.pw/index.php?q=" + encodeURIComponent(document.location.href);
}

encodeUriComponent 将转义 URL,因此您将能够在另一个 URL 的查询字符串中使用它。

【讨论】:

  • 你能澄清一下吗?我想要做的是,如果 url 不包含“blocked”这个词,它应该对 url 进行编码并将“tunneler.pw/index.php?q=”添加到 url 的开头。谢谢。
  • 好的,我会更新我的答案以反映这一点。问题不清楚。
  • 另外,它不仅仅适用于这个“coolmathgames”网站,它应该适用于任何网站。非常感谢您的帮助!
  • 由于某种原因,它不能用作书签,即使在我转换后也是如此。我将不得不尝试它而不是作为书签,看看有什么问题。
  • 我刚刚在 Javascript shell 中试了一下,得到了这个错误:ReferenceError: encodeUriComponent is not defined
猜你喜欢
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2011-04-15
  • 1970-01-01
  • 2016-05-22
  • 2023-03-07
  • 1970-01-01
相关资源
最近更新 更多