javascript - 函数内部调用函数时的不同结果

标签 javascript jquery

我有以下 JS 代码,它检查网页以查看是否定期在其上发布新 key 。现在的问题是:

  • 何时 start()直接从开发控制台(F12)调用,结果是正确的,当我的函数 $(document).ready 时称之为结果是错误的,是的,我已经确认了 100 次,页面上的内容没有发生变化。

  • 我只是想看看变量是否不同步,所以我调用 start() $(document).ready 2 次,结果仍然错误,但是当我打电话 satrt() 时来自 F12 (从 $(document).ready 调用它 20 次后,我得到了正确的结果。

  • 我已经确认所有事件都在等待彼此完成(可能称为 synchronous ),并且任何单个语句都在不同线程中运行是不正确的。

那么如果F12怎么可能呢?调用它,那么它是正确的,如果 $(document).ready称其为错误。

需要注意的一个有趣的点:

当我没有$(document).ready时在我的代码中,我调用 wow()来自start()这也给了我错误的结果,但 F12 给出了正确的结果。 现在我有 $(document).ready ,如果我打电话start()从中又调用 wow()给了我错误的结果,但现在如果我打电话 start()从我的控制台,它给了我正确的结果!

我真正想要以更简单的形式做的事情:

  1. 等待页面完成加载
  2. 调用 wow()
  3. 等待 wow()完成
  4. 重新加载页面

相同的过程在无限循环中继续。

谦虚感谢您的帮助,这已经浪费了我近 5-6 个小时的时间!

JS代码:http://pastebin.com/9UJYdepU

编辑:

正确输出:

a.js:136 Started
a.js:33 Called Wow
a.js:83 ---------------------KEY 7.0----------------
a.js:83 ---------------------KEY 7.1----------------
a.js:83 ---------------------KEY 7.2----------------
a.js:102 LAST used keys : Saab,Volvo,BMW,4E69G-8GNG4-JCZ4Z,H63HQ-VHWPX-ZCJ8J,FKZGK-MXL5C-P2YTE,4E69G-xxxxxx-JCZ4Z,4E69G-AAAxx-JCZ4Z,4E69G-AAAxx-JasasCZ4Z,4E69G-AAAxx-JasaaaasCZ4Z
a.js:140 WOWO DONW

输出错误:

Started
a.js:33 Called Wow
a.js:102 LAST used keys : Saab,Volvo,BMW,4E69G-8GNG4-JCZ4Z,H63HQ-VHWPX-ZCJ8J,FKZGK-MXL5C-P2YTE,4E69G-xxxxxx-JCZ4Z,4E69G-AAAxx-JCZ4Z,4E69G-AAAxx-JasasCZ4Z,4E69G-AAAxx-JasaaaasCZ4Z
a.js:140 WOWO DONW

document.getElementsByTagName("p");给出:http://pastebin.com/JXQ9483N localStorage.getItem("usedp")给予Saab,Volvo,BMW,4E69G-8GNG4-JCZ4Z,H63HQ-VHWPX-ZCJ8J,FKZGK-MXL5C-P2YTE,4E69G-xxxxxx-JCZ4Z,4E69G-AAAxx-JCZ4Z,4E69G-AAAxx-JasasCZ4Z,4E69G-AAAxx-JasaaaasCZ4Z

最佳答案

终于解决了!这都是因为邪恶的 Jquery(抱歉,如果我伤害了你)。

$(document).ready 在页面开始加载时触发,而不是在加载完成时触发,我的替代解决方案是:

var myVar = setInterval(function(){ chk() }, 500);
function chk(){

if(document.readyState=="complete"){
        clearInterval(myVar);

    startt();


}
}

关于javascript - 函数内部调用函数时的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194316/

相关文章:

javascript - 在页面加载时显示目录中的图像

javascript - 使用 JQuery 更改 Vimeo 视频

javascript - Google Universal Analytics 表单提交

javascript - 如何制作汇总模块,重新导出ESM模块的所有子模块导出?

javascript - 在 react 中将参数传递给父组件回调的正确方法

javascript - 如何创建相似的 css 类

javascript - 调用内联 ajax 时,magnificpopup 仅在第二次单击时起作用

javascript - 提取代码并将其放入另一个函数中

javascript - 如何使用 hashchange 获得 beforeunload 功能?

Javascript 日历不会显示当前日期+月份