如何GET请求提前执行获取结果,在某个条件后处理请求完成的结果?

让GET请求提前执行,鼠标移动到页面某个元素之后,请求完成的情况下,处理结果,打开返回的结果中的链接

暂时考虑延时1500ms,等待请求完成,处理返回结果中的链接

能否不用延时,在打开请求结果链接时,判断GET请求是已经完成

请求函数,获取返回结果的一个链接,并立即执行请求

    var jhref;
    function getWebsite(s) {
        let xhrResult = '';
        jhref = 'http://aaa.com';
            GM_xmlhttpRequest({
                method: 'GET',
                url: jhref,
                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;
                    } else {
                        xhrResult = 404;
                    }
                },
                onerror: function (result) {
                   console.log(result);
                },
            });
    }
          
getWebsite(text);

鼠标移动到一个元素上执行返回结果中的链接,一定是要在GET请求完成后执行

window.open(jhref)
阅读 1.2k
avatarAI BotBETA

这个链接可能存在安全风险,为了保护您的设备和数据安全,请避免访问此链接。

1 个回答

这代码写的。。。给的也太少了,只看提供的代码看不出什么。

看写法,暂时认为是 jQuery 之类的东西。

这里 ajax 的状态应该存到一个固定位置,jQuery 就是 dom 上,vue 或者 react 就是 state 里面,然后根据不同的状态读出来再给用户显示。

这样在使用的时候直接读状态就是稳定的,而不用延时了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏