【问题标题】:How to imitate cross-browser $(document).ready() behavior without JQuery [duplicate]如何在没有 JQuery 的情况下模仿跨浏览器 $(document).ready() 行为 [重复]
【发布时间】:2012-04-04 18:36:12
【问题描述】:

可能重复:
$(document).ready equivalent without jQuery

我需要编写一个脚本,该脚本需要在准备好的 DOM 上执行,但我不能依赖 JQuery 作为脚本的一部分。

我想模仿$(document).ready(),如何以最短的方式实现这个行为?

【问题讨论】:

  • 卡罗莉不是在开玩笑。如果你真的希望它像 jQuery 一样运行,只需使用源代码的那部分即可。
  • 我确实复制了 JQuery 函数我似乎是最好的解决方案,谢谢,我只是不确定

标签: jquery events cross-browser onreadystatechange onready


【解决方案1】:

你可以使用:

document.addEventListener("DOMContentLoaded", function(){
//do things
},false);

例如。请注意,这可能是旧浏览器中的问题,请参阅MDN 以获取支持的浏览器列表。

【讨论】:

  • 这只是部分浏览器的部分解决方案。
【解决方案2】:

你可以做两件事。在 body 标签上添加一个 onload 事件:

    <body onload="myJSFunction()"></body>

否则,您可以在标记底部添加函数:

<script type="text/javascript"> function myFunction()</script>

【讨论】:

  • 这不等同于 DOM Ready。
【解决方案3】:
window.onload = function() {
    // write some javascript here
    // this will be executed on page load
}

【讨论】:

  • 虽然这很可能有效,但 jQuery 用于绑定 document.ready 的代码要复杂得多。如果 OP 想直接模仿它,这是不够的。
  • 这不等同于 DOM Ready。
猜你喜欢
  • 2011-04-28
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多