一个油猴子脚本,通过查找页面也符合条件的a标签,对标签元素文本执行httpRequest,2秒左右返回值,然后将返回的值修改a标签文本
<a>第一个元素</a>
<a>第二个元素</a>
<a>第三个元素</a>
<a>第四个元素</a>
请求后,修改为
<a>第一个元素[t]</a>
<a>第二个元素[t]</a>
<a>第三个元素[t]</a>
<a>第四个元素[t]</a>
从页面取符合条件a标签内容,httpRequest请求后,返回t的值
定义全局t变量后,还未获取到前一个a标签内容请求返回的值并修改节点内容,第二个a标签节点的内容就开始执行httpRequest请求,t的值被修改,无法分别对节点同时请求,修改原节点内容
使用2个setTimeout,依次对每个a标签节点内容进行httpRequest请求并修改页面元素,等待时间太长,能否同时执行请求,分别修改对应的a标签元素内容添加返回的值?
let Result = '';
var t = '';
function getInfo(url) {
GM_xmlhttpRequest({
method: 'GET',
url: url,
onload: function (res) {
Result = res.status;
let domNewx = new DOMParser().parseFromString(res.responseText, 'text/html');
let info = domNewx.querySelectorAll('.info')[0];
if(info) {
if(info.children[1].querySelector('.size'))
t = info.children[1].querySelector('.size').innerHTML.split(' ')[5];
} else {
//console.log('undefined');
Result = 404;
}
},
onerror: function (result) {
console.log(result);
},
});
}
document.querySelectorAll('a').forEach(function (value, index) {
if(value.nextSibling.className == 'symbol') {
setTimeout(() => {
getInfo(url + value.innerHTML);
setTimeout(() => {
if(t) {
value.innerHTML = value.innerHTML + '[' + t + ']';
}
//console.log(t);
t = '';
//}, 2000*(index - 99 + 1))
}, 2000)
}, 2500*(index + 1))
}
});
解决了,放在一个函数里面,每个节点调用一次函数,修改对应的节点
function getInfo(url) {
return new Promise((resolve, reject) => {
GM_xmlhttpRequest({
method: 'GET',
url: url,
onload: function (res) {
let domNewx = new DOMParser().parseFromString(res.responseText, 'text/html');
let info = domNewx.querySelectorAll('.info')[0];
let t = '';
if(info && info.children[1].querySelector('.size')) {
t = info.children[1].querySelector('.size').innerHTML.split(' ')[5];
}
resolve(t);
},
onerror: function (result) {
reject(result);
},
});
});
}
然后:
document.querySelectorAll('a').forEach(function (value, index) {
if(value.nextSibling.className == 'symbol') {
getInfo(url + value.innerHTML).then(t => {
if(t) {
value.innerHTML = value.innerHTML + '[' + t + ']';
}
});
}
});
Tampermonkey中使用GM_xmlhttpRequest对多个链接同时进行请求,将最先返回结果的值进行条件判断,要是符合条件不再获取后面的请求结果的值,要是不符合,依次获取第二个、第三个的返回结果的值进行条件判断,同样符合条件不再获取后面的,要是不符合条件,同样获取后面的值 使用AI写了一段代码,看注释和实际结果,貌似是先获取一个请求结果,进行判断,然后再等所有剩下的结果请求完成,再进行条
何时单链表中的节点符合垃圾回收机制? 如果单链表中有一个节点是最后一个元素,那么它的下一个指针将指向null。如果假设最后一个元素中的数据也是null。在这种情况下,数据和下一个指针都是空的。这个元素是否符合垃圾回收机制?
问题内容: 我正在使用inside 执行外部脚本。 现在,由于脚本是 在 页面加载 之前 执行的,因此我无法访问。在文档“加载”后(HTML已完全下载并在RAM中),我想执行一些JavaScript。执行脚本时,是否有任何我可以挂上的事件,这些事件将在页面加载时触发? 问题答案: 这些解决方案将起作用: 要么 甚至 请注意, 最后一个选项是更好的选择,因为它不引人注目并且被[认为是更标准的。
问题内容: 我正在尝试使用操作数AND一起查询集合。我有外壳版本工作: 我找不到Java等效项(使用本机驱动程序)。我已经尝试了各种方法,但这是我最近的尝试: 任何想法有什么问题吗? 问题答案:
原文是这样的: 这确实令人惊讶,但最终明白了(嗯,至少我想我明白了)为什么会这样发生。 现在,我将第二个更改为: 如果我遗漏了一些明显的东西,或者我的问题是愚蠢的,让我提前说声对不起。还有谢谢你!
我目前正在尝试一个项目,包括创建银行账户系统。该系统允许您创建一个新的银行账户,您可以在其中说明该账户的归属、余额等。 其中一种方法是能够从账户中提取资金。除此之外,您还可以检查帐户是否透支。 对于方法,我必须满足几个条件。这些是以下: 该值必须高于0.0,这意味着低于0的提款不会发生。 余额不得低于0.0,除非账户透支 目前,我已经能够做到这一点,所以如果金额低于0.0,该方法将返回false。