如何在用户脚本中@match URL 散列?
How to @match a URL hash in a userscript?
我在一个网站上打开了很多标签页 - 我想将其限制为只有一个 URL。
问题是 URL 中有 #
而我似乎无法 @match 它。
URL 看起来像:https://xxx.xxxxxx.xxx/#/xxxxxx
我试过了:
// @match https://xxx.xxxxxx.xxx/#/xxxxxx - doesnt work
// @match https://xxx.xxxxxx.xxx/* - works - but works on all tabs
// @match https://xxx.xxxxxx.xxx/*/xxxxxx -doesnt work;/
// @match https://xxx.xxxxxx.xxx/\#/xxxxxx -doesnt work;/
* 及其后的任何组合均无效。 :(
此问题与以下问题密切相关:Greasemonkey/Tampermonkey @match for a page with parameters。
@match
only works on the protocol/scheme, host, and pathname of a URL.
要触发哈希值(正式 called the "fragment"),您可以 使用 @include
note-1 或使用 @match
并自己测试 URL。
所以使用如下代码:
...
// @match *://YOUR_SERVER.COM/YOUR_PATH/
// ==/UserScript==
if ( ! /#unicorn.*/.test(location.hash) ) return;
// REST OF YOUR CODE HERE.
对于这个例子,那个代码:
- 运行 :
https://YOUR_SERVER.COM/YOUR_PATH/#unicorn
- 运行 :
https://YOUR_SERVER.COM/YOUR_PATH/#unicorn-mode
,等等
- 忽略:
https://YOUR_SERVER.COM/YOUR_PATH/#unicom
- 忽略:
https://YOUR_SERVER.COM/YOUR_PATH/?foo=bar#unicorn
(如果需要,在 @match
末尾添加 *
。)
重要提示:这 仅用于初始页面加载。 hash
可以在页面加载后更改,处理起来更复杂并且未在此中指定问题。
所以,对于那种情况,开一个新问题并参考这个。
备注:
- 不幸的是,Tampermonkey 尚未像 Greasemonkey 那样实现
@include
,因此即使在 @include
和 seems likely to remain that way for the near future 中 fragment/hash 也会被忽略。
我在一个网站上打开了很多标签页 - 我想将其限制为只有一个 URL。
问题是 URL 中有 #
而我似乎无法 @match 它。
URL 看起来像:https://xxx.xxxxxx.xxx/#/xxxxxx
我试过了:
// @match https://xxx.xxxxxx.xxx/#/xxxxxx - doesnt work
// @match https://xxx.xxxxxx.xxx/* - works - but works on all tabs
// @match https://xxx.xxxxxx.xxx/*/xxxxxx -doesnt work;/
// @match https://xxx.xxxxxx.xxx/\#/xxxxxx -doesnt work;/
* 及其后的任何组合均无效。 :(
此问题与以下问题密切相关:Greasemonkey/Tampermonkey @match for a page with parameters。
@match
only works on the protocol/scheme, host, and pathname of a URL.
要触发哈希值(正式 called the "fragment"),您可以 使用 note-1 或使用 @include
@match
并自己测试 URL。
所以使用如下代码:
...
// @match *://YOUR_SERVER.COM/YOUR_PATH/
// ==/UserScript==
if ( ! /#unicorn.*/.test(location.hash) ) return;
// REST OF YOUR CODE HERE.
对于这个例子,那个代码:
- 运行 :
https://YOUR_SERVER.COM/YOUR_PATH/#unicorn
- 运行 :
https://YOUR_SERVER.COM/YOUR_PATH/#unicorn-mode
,等等 - 忽略:
https://YOUR_SERVER.COM/YOUR_PATH/#unicom
- 忽略:
https://YOUR_SERVER.COM/YOUR_PATH/?foo=bar#unicorn
(如果需要,在@match
末尾添加*
。)
重要提示:这 仅用于初始页面加载。 hash
可以在页面加载后更改,处理起来更复杂并且未在此中指定问题。
所以,对于那种情况,开一个新问题并参考这个。
备注:
- 不幸的是,Tampermonkey 尚未像 Greasemonkey 那样实现
@include
,因此即使在@include
和 seems likely to remain that way for the near future 中 fragment/hash 也会被忽略。