如何设置用户在一系列网站上运行?

时间:2018-05-13 23:45:50

标签: javascript tampermonkey

我想改变一些网站的背景,因为我讨厌当前的一个,但为了这样做,我必须使用document.location.host。我有一个大js文件包含另一个网站,所以我不能只为这个创建另一个js。唯一的问题是该网站将example.com重定向到example1.com,example2.com,example3.com等等。

所以我可以使用

if (document.location.host === example1.com || example2.com ||  example3.com)

但我想要更稳定的东西,所以我不需要并排编写1000个网址,例如example1.com - example1255.com。它必须像

if (document.location.host === example[*].com)

现在,我知道这是可能的,因为我以前做过。我想我是通过使用i ++方法做到的,但我不记得这是怎么回事。

如何使用数组获取网站?或者更像是;如何选择带数组的网站?

P.S。我不想用时髦的东西! P.P.S.我不需要平等检查。整个想法不是编写这些值,而是让脚本完成它。

1 个答案:

答案 0 :(得分:1)

对于Tampermonkey,您应该使用the @include, @match, and @exclude directives来尽可能多地控制脚本运行的页面。
这可以提高性能并降低副作用的风险。

Tampermonkey还支持@include中的有限正则表达式(与@match中提供的模式匹配不同),因此您可以使用如下脚本:

// ==UserScript==
// @name     _Run on a subset of pages
// @include  *://example*.com/*
// @grant    none
// ==/UserScript==

//-- Additional check to make sure server is of form example{some optional number}:
if ( ! /example\d*\.com/.test (location.hostname) )
    return;

console.log ("Hello world!");