// ==UserScript==
// @id rtskincruff
// @name Right Gmail
// @version 1.0
// @namespace OK
// @author Exaskryz
// @description
// @include https://mail.google.com/*
// @run-at window-load
// ==/UserScript==
//I tried for the @run-at document-end and document-idle
var colored = setInterval(function () {coloring()}, 10000);
function coloring() {
console.log("ping");
var name = document.getElementsByClassName("gb_l gb_n");
console.log("got name");
console.log(name.length);
if (name[0].innerHTML = "+Exaskryz") {
name[0].style.color = "#FF0000";
name[0].style.fontSize = "xx-large";
name[0].innerHTML = "WRONG ACCOUNT TO SEND EMAIL FROM";
//var backg = document.getElementsByClassName("AO");
//backg[0].style.backgroundColor = "#FF0000";
} else if (name[0].innerHTML = "WRONG ACCOUNT TO SEND EMAIL FROM") {
clearInterval(colored);
alert("pun");
}
该脚本正在启动5次,我无法弄清楚为什么或如何停止其他实例。其他实例似乎永远无法找到具有类名(gb_l gb_n
)的任何元素,并向我报告name.length
0
。这也很奇怪,因为它只会到达记录name.length
的部分,并且永远不会执行任何其他console.log
UNLESS 它确实获得了变量名称的值
这是完整的脚本,试图找出如何阻止此脚本每10秒运行一次(最初设置为1秒):
// ==UserScript==
// @id rtskincruff
// @name Right Gmail
// @version 1.0
// @namespace OK
// @author Exaskryz
// @description
// @include https://mail.google.com/*
// @run-at document-idle
// ==/UserScript==
var colored = setInterval(function () {coloring()}, 10000);
function coloring() {
console.log("ping");
var name = document.getElementsByClassName("gb_l gb_n");
console.log("got name");
console.log(name.length);
if (name[0].innerHTML = "+Exaskryz") {
name[0].style.color = "#FF0000";
name[0].style.fontSize = "xx-large";
name[0].innerHTML = "WRONG ACCOUNT TO SEND EMAIL FROM";
//var backg = document.getElementsByClassName("AO");
//backg[0].style.backgroundColor = "#FF0000";
} else if (name[0].innerHTML = "WRONG ACCOUNT TO SEND EMAIL FROM") {
clearInterval(colored);
alert("pun");
}
console.log("passed first if");
if (name.length>0) {
if (name[0].innerHTML = "+Exaskryz") {
name[0].style.color = "#FF0000";
name[0].style.fontSize = "xx-large";
name[0].innerHTML = "WRONG ACCOUNT TO SEND EMAIL FROM";
//var backg = document.getElementsByClassName("AO");
//backg[0].style.backgroundColor = "#FF0000";
alert("bun");
clearInterval(colored);
alert("done");
}
}
console.log("passed second if");
var nong = document.getElementsByClassName("gb_K gb_ka gb_n gb_ga");
console.log("got nong");
alert(nong.length);
if (nong[0].innerHTML = "CorrectAccount@gmail.com") {
alert("hun");
clearInterval(colored);
alert("done");
}
}
答案 0 :(得分:0)
这是一个黑暗的镜头,但您的脚本可能也在mail.google.com上的任何iframe上运行。要阻止脚本在iframe上运行,有两个选项。
在脚本的元数据块中,您可以将@noframes设置为true。
// @noframes true
或者,您可以在脚本的开头检查脚本的窗口是否实际上是“最顶层”窗口。
if (window != window.top) { return; }