如何在一个函数中使用GET请求结果赋值给一个公共变量,另一个函数中调用函数,通过鼠标移动到页面元素时执行上一个函数,在另一个条件中确定公共变量一定被赋值后才在控制台输出
使用promise.resolve
执行异步函数,只能在第二个函数调用中确定GET请求后的动作,第三步、第四步,无法再使用.then()
执行控制台输出公共变量被赋值后的值
说明:
想在鼠标移动到页面元素时执行GET请求,尽早获取请求结果,如果在最后一个条件执行GET请求,再处理公共变量赋值的结果太延后了,倒是可以控制请求完成后执行
倒是可以在通过鼠标移动到页面元素时,执行GET请求函数,跳过第二个函数
油猴子中的完整代码
https://f.ws28.cn/f/f5zd76ncne5 复制链接到浏览器打开
请求函数
var jhref;//定义公共变量
function getWebsite(s) {
let xhrResult = '';
jhref = 'http://aaa.com';
GM_xmlhttpRequest({
method: 'GET',
url: siteUrl,
onload: function (result) {
xhrResult = result.status;
let domNew = new DOMParser().parseFromString(result.responseText, 'text/html');
let linkElement = domNew.querySelectorAll('.item>a')[0];
if(linkElement != undefined) {
jhref = linkElement.href.replace(linkElement.hostname, 'bbb.com');
} else {
xhrResult = 404;
}
},
onerror: function (result) {
console.log(result);
},
});
}
第二个函数(iconArray是一个图标数组,style()是一个显示图标的函数,与图标显示同时执行上一个函数)
function showBar(e, text) {
Object.values(iconArray).forEach(function(value, index) {
if(value.style.display == 'none') {//返回标签页鼠标点击事件不弹图标栏标志
if(index === 2 ){
if(window.location.host.indexOf('db') > -1) {
jhref = text;
style(e, 0, value);
} else {
getWebsite(text);
style(e, 0, value);
}
}
}
});
}
通过鼠标移动到页面元素时执行第二个函数
document.querySelectorAll(".title").forEach(function (value) {
text = value.parentNode.href;
value.addEventListener('mouseover', (e) => {
showBar(e, text);
});
});
在条件下执行打开公共变量链接(是鼠标移动到一个弹出的图标元素上的条件,一定是要在GET请求完成后执行,不管获取到结果值或者未获取到值)
window.open(jhref)
这个链接可能存在安全风险,为了保护您的设备和数据安全,请避免访问此链接。
我在下面有一个java程序: 现在,我想将两个字符串值“加纳”或“加纳”分配给“National”变量,这样当用户输入“加纳”或“加纳”时,当程序将“nation”值检查为“National”值,然后执行“if”块中的语句时,条件变为真。 但是有了我上面的代码,程序只有在用户输入“加纳”时才会执行“如果”语句;程序在用户输入“加纳”时才会执行“其他”语句。 请帮帮我。 谢谢你。
为什么我不能这样做? 我得到: 致命错误:常量表达式包含无效操作 这有什么办法吗?
组件提示框中的数据想展示在页面的别的位置,请问如何把echarts的组件提示框中的值赋值给另外一个变量?
我试图用随机数创建10个变量,所有变量都以同一个单词开头,比如: -Foo1 -Foo2 -Foo3 -Foo4 我正在努力的是: 但是我不能让这个工作。 你们知道如何解决这个问题吗? 提前谢谢!
请记住,这是在另一个组件中,因为我需要将该函数应用到CalculatorButton的onClick(CalculatorButton是另一个子组件)。
问题内容: 如果我有这个: 我之前已定义,因此效果很好。 我的问题是在第6行中调用。我试图用相同的定义在第一个函数之外进行定义,但是即使调用,它也始终相同。 我希望每次调用第一个函数然后再调用第二个函数时,都具有一个不同的。 我能做到这一点,而不界定外? 问题答案: 是的,您应该考虑在一个类中定义您的函数,并使word成为成员。这比较干净 创建类后,您必须将其实例化为对象并访问成员函数。 另一种方