Nee*_*mar 99 html javascript image
我在页面加载后使用以下代码执行一些语句.
<script type="text/javascript">
window.onload = function () {
newInvite();
document.ag.src="b.jpg";
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是这段代码不能正常工作.即使正在加载某些图像或元素,也会调用该函数.我想要的是调用页面完全加载的功能.
Shr*_*har 147
这可能适合你:
document.addEventListener('DOMContentLoaded', function() {
// your code here
}, false);
Run Code Online (Sandbox Code Playgroud)
或者如果你对jquery的安慰,
$(document).ready(function(){
// your code
});
Run Code Online (Sandbox Code Playgroud)
$(document).ready()
在DOMContentLoaded上触发,但是在浏览器中不会一致地触发此事件.这就是jQuery最有可能实现一些重要的解决方法来支持所有浏览器的原因.这将使得使用普通Javascript"完全"模拟行为变得非常困难(当然不是不可能的).
正如Jeffrey Sweeney和J Torres建议的那样,我认为setTimeout
在解决下面这个函数之前更好地拥有一个函数:
setTimeout(function(){
//your code here
}, 3000);
Run Code Online (Sandbox Code Playgroud)
T.T*_*dua 42
A)使用普通的javascript:
document.addEventListener('readystatechange', event => {
if (event.target.readyState === "interactive") { //same as: ..addEventListener("DOMContentLoaded".. and jQuery.ready
alert("All HTML DOM elements are accessible");
}
if (event.target.readyState === "complete") {
alert("Now external resources are loaded too, like css,src etc... ");
}
});
Run Code Online (Sandbox Code Playgroud)
B)使用jQuery:
$(function(){
alert("hello");
});
Run Code Online (Sandbox Code Playgroud)
C)不要使用以下方法(使用ready
标志):
document.onreadystatechange = function(){ alert("Hi"); }
Run Code Online (Sandbox Code Playgroud)
因为它会覆盖其他同类声明.
Jai*_*res 32
如果你可以使用jQuery,请查看load.然后,您可以将您的函数设置为在元素完成加载后运行.
例如,考虑一个包含简单图像的页面:
<img src="book.png" alt="Book" id="book" />
Run Code Online (Sandbox Code Playgroud)
事件处理程序可以绑定到图像:
$('#book').load(function() {
// Handler for .load() called.
});
Run Code Online (Sandbox Code Playgroud)
如果需要加载当前窗口中的所有元素,则可以使用
$(window).load(function () {
// run code
});
Run Code Online (Sandbox Code Playgroud)
Han*_*nif 23
我有点混淆你的意思是页面加载完成,"DOM加载"还是"内容加载"?在html页面中,load可以在两个类型事件之后触发事件.
DOM加载:确保整个DOM树加载开始结束.但不能确保加载参考内容.假设您通过img
标签添加了图像,因此此事件可确保所有已img
加载但未正确加载图像.要获得此活动,您应该写下以下方式:
document.addEventListener('DOMContentLoaded', function() {
// your code here
}, false);
Run Code Online (Sandbox Code Playgroud)
或者使用jQuery:
$(document).ready(function(){
// your code
});
Run Code Online (Sandbox Code Playgroud)在DOM和内容加载之后:这也表示DOM和内容加载.它将确保不仅img
标记它还将确保加载所有图像或其他相关内容.要获得此活动,您应该写下以下方式:
window.addEventListener('load', function() {...})
Run Code Online (Sandbox Code Playgroud)
或者使用jQuery:
$(window).on('load', function() {
console.log('All assets are loaded')
})
Run Code Online (Sandbox Code Playgroud)use*_*682 11
如果你想在你的html页面中调用js函数,请使用onload事件.当用户代理完成加载窗口或FRAMESET中的所有帧时,会发生onload事件.此属性可以与BODY和FRAMESET元素一起使用.
<body onload="callFunction();">
....
</body>
Run Code Online (Sandbox Code Playgroud)
据我所知,你最好的选择是使用
window.addEventListener('load', function() {
console.log('All assets loaded')
});
Run Code Online (Sandbox Code Playgroud)
使用DOMContentLoaded
事件的 #1 答案是倒退,因为 DOM 将在所有资产加载之前加载。
其他答案推荐setTimeout
我强烈反对,因为它完全取决于客户端的设备性能和网络连接速度。如果某人网络速度较慢和/或 CPU 速度较慢,则页面可能需要几秒到几十秒才能加载,因此您无法预测需要多长时间setTimeout
。
至于readystatechange
,它会在任何readyState
更改时触发,根据MDN仍将在load
事件发生之前。
完全的
状态指示加载事件即将触发。
这样你就可以处理这两种情况 - 如果页面已经加载了:
document.onreadystatechange = function(){
if (document.readyState === "complete") {
myFunction();
}
else {
window.onload = function () {
myFunction();
};
};
}
Run Code Online (Sandbox Code Playgroud)
小智 5
你可以这样尝试而不使用jquery
window.addEventListener("load", afterLoaded,false);
function afterLoaded(){
alert("after load")
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
451545 次 |
最近记录: |