我正在制作一个通知系统用户脚本..基本上它的作用是,它向一个带有.txt文件的网站发送GET请求。文件输出如下:
12345|User notification
all|Everyone will see this
12345
是用户的ID,all
只是设置为向所有人显示消息。当我写下用户的ID(如12345)时,它会向ID为12345的特定用户发送通知,如果我写了#34; all"它会向所有人发送通知。
问题:我为每个通知都有一个解雇按钮(因为两者都可以同时显示),但是当我同时解除这两个通知时,然后发送新通知,即使我解雇了一个通知,也会显示两个通知他们这是我的代码:
GM_xmlhttpRequest({
method: "GET",
url: "http://website.com/notification.txt",
ignoreCache: false,
onload: function(response){
res = trim(response.responseText);
array = res.split("\n");
for(i = 0; i < array.length; i++) {
array2 = array[i].split("|");
if(array2[0] == uid) {
userMessage = array2[1];
}
if(array2[0] == "all") {
allMessage = array2[1];
}
}
if(typeof userMessage !== 'undefined'){
if(GM_getValue("userMessage") != userMessage) {
GM_setValue("userMessage", userMessage);
GM_setValue("userDismiss", false);
}
}
if(typeof allMessage !== 'undefined'){
if(GM_getValue("allMessage") != allMessage) {
GM_setValue("allMessage", allMessage);
GM_setValue("allDismiss", false);
}
}
}
});
看看这两个if语句:
if(array2[0] == uid) {
if(array2[0] == "all") {
检查用户ID是否等于用户的uid(用户ID)或是否显示all
。然后看看这些:
if(GM_getValue("userMessage") != userMessage) {
if(GM_getValue("allMessage") != allMessage) {
检查先前通知中存储的消息(GM_getValue内部)是否与刚收到的新数据不相等。如果它相同,它就不应该继续,但是,如果只有一个通知不同,它会说两个if语句都为真,然后继续。即使GM_getValue("userMessage") equals userMessage
,它仍然会继续执行if语句,即使它显示!=
。
另外,我在userMessage,allMessage和GM_getValue()上尝试了console.log(),如果我尝试为所有人添加通知,则会说userMessage与GM_getValue相同(&#34) ; userMessage)。那些if语句出了问题,但我不知道是什么。
任何帮助将不胜感激。我很困惑,所以请帮助我。如果您需要更多信息,请与我们联系。
答案 0 :(得分:0)
我认为您需要在此处正确定位一些变量,例如(allMessage
,userMessage
和其他一些变量。我认为,一旦你适当地allMessage
和userMessage
,你就会很好!
GM_xmlhttpRequest({
method: "GET",
url: "http://website.com/notification.txt",
ignoreCache: false,
onload: function(response){
var res = trim(response.responseText);
var array = res.split("\n");
var array2 = [];
var allMessage, userMessage;
for(var i = 0; i < array.length; i++) {
array2 = array[i].split("|");
if(array2[0] == uid) {
userMessage = array2[1];
}
if(array2[0] == "all") {
allMessage = array2[1];
}
}
if(typeof userMessage !== 'undefined'){
if(GM_getValue("userMessage") != userMessage) {
GM_setValue("userMessage", userMessage);
GM_setValue("userDismiss", false);
}
}
if(typeof allMessage !== 'undefined'){
if(GM_getValue("allMessage") != allMessage) {
GM_setValue("allMessage", allMessage);
GM_setValue("allDismiss", false);
}
}
}
});
这种旧结果不会影响新结果。