如何在没有 JQuery 的情况下模仿跨浏览器 $(document).ready() 行为 [重复]

Posted

技术标签:

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

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

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

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

【问题讨论】:

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

以上是关于如何在没有 JQuery 的情况下模仿跨浏览器 $(document).ready() 行为 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

没有 JQuery 的 mouseenter

学亮IT手记Ajax跨域问题精讲--jQuery解决跨域操作

jquery 如何实现跨域载入其他网站的页面内容

计算跨浏览器 iframe 高度

jQuery:在没有浏览器特定代码的情况下获取输入中文本的光标位置? [复制]

如何在不使用jQuery的情况下获取元素的offset()。top值?