如何在没有 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() 行为 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
学亮IT手记Ajax跨域问题精讲--jQuery解决跨域操作