【问题标题】:How to execute a javascript command multiple times with single line of code in browser console?如何在浏览器控制台中使用单行代码多次执行 javascript 命令?
【发布时间】:2020-03-24 22:33:43
【问题描述】:

我想检查是否所有 ajax 请求都已完成,然后才与网页上的元素进行交互。因此我打开了 chrome 浏览器的开发者控制台。在搜索栏中输入 url 并按 ENTER 键后,在控制台中我不断点击$.active 多次,结果大部分时间我可以看到返回值为0,但有时为1

我用手敲了$.active 命令,因此我无法始终看到一致的结果。有没有可以在控制台输入的java脚本代码,点击后$.active命令会被一一点击,直到提到的次数?

【问题讨论】:

  • 很难找出$.active 是什么,我没有看到它here 并且很难谷歌,你有参考吗?
  • 我是从stackoverflow.com/questions/1822913/…的一个答案中得到的
  • 你问错了问题(见这里:xy problem);您要做的是运行多个异步请求并在所有请求完成后运行一些代码。 JS 有Promise.all,jQuery 有.when

标签: javascript jquery ajax http


【解决方案1】:

如果$是jQuery,你可以添加一个ajaxComplete回调,并检查$.active里面是否有:

$(document).on('ajaxComplete', () => {
  Promise.resolve().then(() => {
    if (!$.active) {
      console.log('All done');
    }
  });
});

这不是一行代码,但它应该可以工作。 (您可以通过在控制台中运行它来测试它,然后在 Stack Overflow 的顶部栏中打开您的收件箱或信誉记录。将发送一个 ajax 请求,完成后,ajaxComplete 将运行,$.active 将被设置到 0)

需要Promise.resolve().then,因为$.active 仅在ajaxComplete 回调运行之后 递减。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多