我尝试编写一个Greasemonkey用户脚本,用于检查用户是否在某个网站列表中。
如果用户确实在其中一个中,则脚本将发出警告:
已经足够域了!
该脚本的目的是提醒用户他停止访问此站点(类似成瘾的行为)。
输出应仅包含域名不含 TLD。
我尝试了以下失败的代码(代码在tld集合上运行并使用集合来剥离这些代码):
let sites = ['walla.com', 'mako.co.il'];
let tlds = new RegExp('\.+(com|co.il)');
for (let i = 0; i < sites.length; i++) {
if (window.location.href.indexOf(sites[i]) != -1 ) {
sites.forEach((e)=>{
e.replace(tlds, '').split('.').pop(),
});
alert(` Enough with this ${sites[i]} already! `);
}
}
没有控制台错误。
要重现,请在Greasemoneky / Tampermonkey中安装脚本,并在列出的站点中进行尝试。
答案 0 :(得分:1)
您应该迭代网站,如果href包含网站(sites[i]
),请替换域之后的所有内容(向前),提醒并打破循环:
const sites = ['walla.com', 'mako.co.il'];
const regex = /\..+/;
const href = 'http://www.mako.co.il/news?partner=NavBar'; // this replace window.location.href for demo purposes
for (let i = 0; i < sites.length; i++) {
if (href.includes(sites[i])) { // if the href includes the sites[i]
const domain = sites[i].replace(regex, ''); // remove the 1st dot and everything after it to get the domain name
alert(` Enough with this ${domain} already! `);
break; // or return if in a function
}
}
&#13;