Как @ сопоставить URL-хэш в usercript? - PullRequest
0 голосов
/ 21 сентября 2018

У меня много открытых вкладок на сайте - и я хочу ограничить его только одним URL.

Проблема в том, что URL содержит #, и я не могу @match его сопоставить.

URL выглядит следующим образом: https://xxx.xxxxxx.xxx/#/xxxxxx

Iпробовал:

// @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;/

Любая комбинация * и что-либо после этого не работает.(

1 Ответ

0 голосов
/ 21 сентября 2018

Этот вопрос тесно связан с: Greasemonkey / Tampermonkey @match для страницы с параметрами .

@match работает только на протоколе / схеме, хосте ипуть к URL-адресу.

Чтобы активировать хеш-значение (официально называется «фрагмент» ), вы можете либо использовать @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 может измениться после загрузки страницы, и это большесложный для рассмотрения и не указанный в этом вопросе.
Итак, для такого сценария откройте новый вопрос и обратитесь к нему.




Примечания:

  1. UnfortuВ настоящее время Tampermonkey еще не реализовал @include так, как это сделал Greasemonkey, поэтому фрагмент / хэш игнорируется даже в @include, и , вероятно, останется таким в ближайшем будущем .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...