为什么这3个greasemonkey(javascript)脚本相互冲突?
理想情况下,我希望它们都运行,但当第二个和/或第三个脚本处于活动状态时,脚本1将失败。(它什么也不做) 我想知道,有没有可能把它们合并成一个脚本?这能解决问题吗?(我很想尝试将它们剪切粘贴到一个脚本中,看看会发生什么) 脚本1(重新加载程序)为什么这3个greasemonkey(javascript)脚本相互冲突?,javascript,greasemonkey,Javascript,Greasemonkey,理想情况下,我希望它们都运行,但当第二个和/或第三个脚本处于活动状态时,脚本1将失败。(它什么也不做) 我想知道,有没有可能把它们合并成一个脚本?这能解决问题吗?(我很想尝试将它们剪切粘贴到一个脚本中,看看会发生什么) 脚本1(重新加载程序) 如果第二个脚本没有改变任何可能导致第一个脚本中断的内容(比如第一个脚本查找的内容被脚本2删除)。。。。我建议进入“管理脚本”并更改它们的运行顺序。。。有时,这可以解决这样的问题 (function () { "use strict"; function
如果第二个脚本没有改变任何可能导致第一个脚本中断的内容(比如第一个脚本查找的内容被脚本2删除)。。。。我建议进入“管理脚本”并更改它们的运行顺序。。。有时,这可以解决这样的问题
(function () {
"use strict";
function walkTheDOM(node, func) {
if (node && node.nodeType) {
if (typeof func === "function") {
func(node);
}
node = node.firstChild;
while (node) {
walkTheDOM(node, func);
node = node.nextSibling;
}
}
}
function filterElementsByContains(elements, string) {
var toStringFN = {}.toString,
text = toStringFN.call(elements),
result,
length,
i,
element;
if (text !== "[object NodeList]" && text !== "[object Array]" && !($() instanceof jQuery)) {
return result;
}
result = [];
if (typeof string === "string") {
string = new RegExp("^" + string + "$");
} else if (toStringFN.call(string) !== "[object RegExp]") {
return result;
}
function getText(node) {
if (node.nodeType === 3) {
text += node.nodeValue;
}
}
length = elements.length;
i = 0;
while (i < length) {
text = "";
element = elements[i];
walkTheDOM(element, getText);
if (string.test(text)) {
result.push(element);
}
i += 1;
}
return result;
}
if(!filterElementsByContains([document.getElementsByTagName("table")[0]], /We are proud to announce that the November discounts have been chosen/).length) {
location.reload();
}
}());
function getPreviousLink(){
var nextLink = document.getElementById('pagination-next-link');
var links = document.getElementsByClassName('v_page_nav')[0].getElementsByTagName("a");
for(var i=0; i < links.length; i++){
if(links[i] == nextLink) { return links[i-1]; }
}
}
var link = getPreviousLink();
link.target="_blank";
link.click();
var link = document.getElementById('pagination-prev-link');
link.target="_blank";
link.click();