Cla*_*son 223 html javascript onload
我想在加载页面时运行一个函数,但我不想在<body>标记中使用它.
如果我在其中初始化它,我有一个运行的脚本<body>,如下所示:
function codeAddress() {
// code
}
Run Code Online (Sandbox Code Playgroud)
<body onLoad="codeAddress()">
Run Code Online (Sandbox Code Playgroud)
但是我想在没有它的情况下运行它<body onload="codeAddress()">并且我已经尝试了很多东西,例如:
window.onload = codeAddress;
Run Code Online (Sandbox Code Playgroud)
但它没有用.
那么如何在加载页面时运行它?
Dar*_*rov 336
window.onload = codeAddress;应该工作 - 这是一个演示,以及完整的代码:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function codeAddress() {
alert('ok');
}
window.onload = codeAddress;
</script>
</head>
<body>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function codeAddress() {
alert('ok');
}
</script>
</head>
<body onload="codeAddress();">
</body>
</html>Run Code Online (Sandbox Code Playgroud)
Spe*_*May 156
自从jQuery发布以来,本机JavaScript已经采用了一些很棒的功能,而不是使用jQuery或window.onload.所有现代浏览器现在都有自己的DOM就绪函数,而不使用jQuery库.
如果你使用原生Javascript我会推荐这个.
document.addEventListener('DOMContentLoaded', function() {
alert("Ready!");
}, false);
Run Code Online (Sandbox Code Playgroud)
Eat*_*oes 44
采取Darin的答案,但jQuery风格.(我知道用户要求使用javascript).
$(document).ready ( function(){
alert('ok');
});?
Run Code Online (Sandbox Code Playgroud)
Hab*_*eeb 22
替代解决方案.为了简洁和代码简单,我更喜欢这个.
(function () {
alert("I am here");
})();
Run Code Online (Sandbox Code Playgroud)
这是一个匿名函数,其中未指定名称.这里发生的是,函数是一起定义和执行的.将其添加到正文的开头或结尾,具体取决于是在加载页面之前执行还是在加载所有HTML元素之后立即执行.
Wil*_*ill 10
window.onload = function() { ......等等不是一个好的答案.
这可能会有效,但它也会破坏已经挂钩到该事件的任何其他功能.或者,如果另一个函数在您的事件之后挂钩,那么它将会破坏您的事件.因此,您可以花费大量时间来试图弄清楚为什么有效的东西不再存在.
if(window.attachEvent) {
window.attachEvent('onload', yourFunctionName);
} else {
if(window.onload) {
var curronload = window.onload;
var newonload = function(evt) {
curronload(evt);
yourFunctionName(evt);
};
window.onload = newonload;
} else {
window.onload = yourFunctionName;
}
}
Run Code Online (Sandbox Code Playgroud)
我一直在使用的一些代码,我忘记了我发现它给予作者信用的地方.
function my_function() {
// whatever code I want to run after page load
}
if (window.attachEvent) {window.attachEvent('onload', my_function);}
else if (window.addEventListener) {window.addEventListener('load', my_function, false);}
else {document.addEventListener('load', my_function, false);}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 :)
尝试就绪状态更改
document.addEventListener('readystatechange', () => {
if (document.readyState == 'complete') codeAddress();
});
Run Code Online (Sandbox Code Playgroud)
状态是:
DOMContentLoadedwindow.onloaddocument.addEventListener('readystatechange', () => {
if (document.readyState == 'complete') codeAddress();
});
Run Code Online (Sandbox Code Playgroud)