编辑脚本,因此它不会对特定版(Subreddit)工作
问题描述:
我使用这个脚本[https://userstyles.org/styles/68211/high-visibility-vote-buttons]和使用Tampermonkey使用它在Chrome,我想编辑它,所以它不会对具体的subreddits工作,主要www.reddit .com/r/pcmasterrace,它不能正常使用它们的CSS,如何编辑代码以在特定页面上禁用它?编辑脚本,因此它不会对特定版(Subreddit)工作
谢谢。
// ==UserScript==
// @name High-Visibility Vote Buttons
// @namespace http://userstyles.org
// @description Makes the vote buttons larger and gives them better contrast.
// @author five35
// @homepage https://userstyles.org/styles/68211
// @include http://www.reddit.com/*
// @include https://www.reddit.com/*
// @include http://*.www.reddit.com/*
// @include https://*.www.reddit.com/*
// @run-at document-start
// @version 0.20120626122606
// ==/UserScript==
(function() {var css = [
"@namespace url(http://www.w3.org/1999/xhtml);",
".arrow {",
" height: 20px !important;",
" width: 35px !important;",
" }",
"",
" .comment .midcol, .link .midcol {",
" width: 35px !important;",
" }",
"",
" .arrow.up {",
" background: url(\'data:image/x-png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAUCAMAAAAweHR+AAAAUVBMVEW7u7u7u7u7u7u7u7u7u7u2tra3t7e4uLi7u7u8vLy9vb2+vr7AwMDBwcHCwsLHx8fIyMjKysrNzc3Ozs7T09PU1NTY2Njb29vc3Nzu7u7///8820/+AAAABXRSTlNLT1Ll6MzfsL8AAACJSURBVCjPjdJBFoMgDARQLGQiiWgVEfX+B+3WPivprP8i8zLuFfp2QufCcbZzeNefVvq7gW0Q2TKsELQNJwADWgYJIGDgZwMlIhBI+cmwAAQC8HXT1UBFRAAWFb2gW69ZYpyN7nkcUzbMOk3vYphtWfJmmFrKWg2z11p38+8/tuH/2Fjnja169wG2xDneEz4tNgAAAABJRU5ErkJggg==\') !important;",
" }",
"",
" .arrow.up:hover {",
" background: url(\'data:image/x-png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAUBAMAAAD1iJl/AAAAFVBMVEUzZpkzZpkzZpkzZpkzZpkzZpn///+QQCZsAAAABXRSTlNLT1Ll6MzfsL8AAABSSURBVBjTY1AJRQUhAgyuaEKhBgzoIqEBcKEwTKG0VHShsLQ0dKG0NJgymBBQEUwZTAgkAlUGFQIrgiqDCkFEIMrw2UhjIeTAMcUMQmE0kWAGALgUeKErTIN7AAAAAElFTkSuQmCC\') !important;",
" }",
"",
" .arrow.upmod {",
" background: url(\'data:image/x-png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAUBAMAAAD1iJl/AAAAFVBMVEX/l2//l2//l2//l2//l2//l2////8LenKCAAAABXRSTlNLT1Ll6MzfsL8AAABSSURBVBjTY1AJRQUhAgyuaEKhBgzoIqEBcKEwTKG0VHShsLQ0dKG0NJgymBBQEUwZTAgkAlUGFQIrgiqDCkFEIMrw2UhjIeTAMcUMQmE0kWAGALgUeKErTIN7AAAAAElFTkSuQmCC\') !important;",
" }",
"",
" .arrow.down {",
" background: url(\'data:image/x-png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAUCAMAAAAweHR+AAAAUVBMVEW7u7u7u7u7u7u7u7u7u7u2tra3t7e4uLi7u7u8vLy9vb2+vr7AwMDBwcHCwsLHx8fIyMjKysrNzc3Ozs7T09PU1NTY2Njb29vc3Nzu7u7///8820/+AAAABXRSTlNLT1Ll6MzfsL8AAACNSURBVCjPjdLbEoQgCAZgWxVUOmyZWb7/g0Z3u41JP7ffIA6oj3HtmE6Zo7RzaOWKFHc3e855F0xOac2C2ZYlboJZp+mbBBPHcYiCmYP387MBChwADMQF9T7IwHJxfsjtLSBrL2QJn+eB4eoEPbZmRkbQQ/tfSH+zVE0Bj9JOGRXZVG5Dv7ixTgu3qtUJI2I53raDg/MAAAAASUVORK5CYII=\') !important;",
" }",
"",
" .arrow.down:hover {",
" background: url(\'data:image/x-png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAUBAMAAAD1iJl/AAAAFVBMVEUzZpkzZpkzZpkzZpkzZpkzZpn///+QQCZsAAAABXRSTlNLT1Ll6MzfsL8AAABMSURBVBjTY1AJRQUhAgyuaEKhBgzoIqEBMKGwtDS6CqVBQCqSUBhECEUjQhFcKAyuCGE8XBFeR4TCFCEJhWGEBHLgmGIGoTCaSDADALD0eKHd8GJwAAAAAElFTkSuQmCC\') !important;",
" }",
"",
" .arrow.downmod {",
" background: url(\'data:image/x-png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAUBAMAAAD1iJl/AAAAFVBMVEWfn/+fn/+fn/+fn/+fn/+fn/////8UYO9JAAAABXRSTlNLT1Ll6MzfsL8AAABMSURBVBjTY1AJRQUhAgyuaEKhBgzoIqEBMKGwtDS6CqVBQCqSUBhECEUjQhFcKAyuCGE8XBFeR4TCFCEJhWGEBHLgmGIGoTCaSDADALD0eKHd8GJwAAAAAElFTkSuQmCC\') !important;",
" }"
].join("\n");
if (typeof GM_addStyle != "undefined") {
GM_addStyle(css);
} else if (typeof PRO_addStyle != "undefined") {
PRO_addStyle(css);
} else if (typeof addStyle != "undefined") {
addStyle(css);
} else {
var node = document.createElement("style");
node.type = "text/css";
node.appendChild(document.createTextNode(css));
var heads = document.getElementsByTagName("head");
if (heads.length > 0) {
heads[0].appendChild(node);
} else {
// no head yet, stick it whereever
document.documentElement.appendChild(node);
}
}
})();
答
您可以使用JavaScript中的Location
界面查看当前位置。 (MDN Reference)。然后,您可以轻松检查用户是否在您想要排除的网站上。像这样例如:
var href = window.location.href;
/*
as Brock Adams mentioned in the comments:
this may not be the best way to check urls,
since there is of course a possibility of
having url parameters containing the string
you're excluding.
A simple (but no 100% guaranteed) solution would
be doing this:
*/
href = href.split(/[?#]/)[0];
/*
This will split the url on the first "?" or "#"
and return the first part, excluding URL parameters.
So "http://reddit.com/foo?referrer=reddit.com/r/PC__MasterRace"
should become "http://reddit.com/foo"
*/
// check if user isn't on a exluded page
if(href.indexOf("reddit.com/r/PC__MasterRace") === -1){
// do stuff
}
+1
这不是一个很好的检查。试想一下:'HTTP://reddit.com/foo引用= reddit.com/R/PC__MasterRace',等等等等 –
答
最简单的方法是使用the @exclude
directive。
在这种情况下,可能是a regex rule。
而且那些@include
线可以简化为一个@match
。
将其组合在一起,你的元数据块会是这样:
// ==UserScript==
// @name High-Visibility Vote Buttons
// @match *://*.reddit.com/*
// @exclude /^https?:\/\/.*reddit\.com\/r\/pcmasterrace*/
// @run-at document-start
// ==/UserScript==
如果你会使用一个@exclude
规则你想排除的每个版(Subreddit)。
要确保你的答案是完整的,可以指定哪些选项需要改变? https://stackoverflow.com/help/how-to-answer – TidyDev