ile bir body onload olayı ekleme Çapraz tarayıcıda JS ile bir body onload olayı nasıl eklenir? Bu kadar basit mi?JS
document.body.onload = function(){
alert("LOADED!");
}
ile bir body onload olayı ekleme Çapraz tarayıcıda JS ile bir body onload olayı nasıl eklenir? Bu kadar basit mi?JS
document.body.onload = function(){
alert("LOADED!");
}
Bu DOMContentLoaded yararlanır ancak tüm Unobtrusiveness sabitlenmesine olanak sağlar ...
window.onload - Dean Edwards - bu konuda blog yazısı müzakerelerinin daha Aynı blogun yorumları.
// Dean Edwards/Matthias Miller/John Resig
function init() {
// quit if this function has already been called
if (arguments.callee.done) return;
// flag this function so we don't do the same thing twice
arguments.callee.done = true;
// kill the timer
if (_timer) clearInterval(_timer);
// do stuff
};
/* for Mozilla/Opera9 */
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", init, false);
}
/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
if (this.readyState == "complete") {
init(); // call the onload handler
}
};
/*@end @*/
/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
var _timer = setInterval(function() {
if (/loaded|complete/.test(document.readyState)) {
init(); // call the onload handler
}
}, 10);
}
/* for other browsers */
window.onload = init;
Farklı tarayıcılar için kullanmanız gereken birkaç farklı yöntem vardır. JQuery gibi kitaplıklar size her şeyi sizin için işleyen bir çapraz tarayıcı arayüzü sunar.
Neden window
's kullanıyor onload
event?
window.onload = function() {
alert("LOADED!");
}
Yanılmıyorsam, tüm tarayıcılarda uyumludur. kopyalanan tam kodu ve burada - daha önce onload ateşler - -
window.onload sonra/her şey/yükler dahil olmak üzere yükler, vb dahil olmak üzere, başlangıç gecikmesini önlemek için DOM manipüle başlamak istiyorsanız mümkün olduğunca gecikme önlemek için window.onload kullanamazsınız. – rpjohnst
document.body.onload
bir çapraz tarayıcı, fakat sadece tek bir geri arama (buna birden fazla işlevi atayamazsınız) olanak sağlayan eski mekanizmasıdır.
yakın "standart" alternatif, addEventListener
Internet Explorer (o attachEvent
kullanır) tarafından desteklenmeyen, bu yüzden büyük olasılıkla çapraz soyut bir kitaplığı (jQuery, mooTools, prototype.js, vs.) kullanmak isteyeceksiniz sizin için tarayıcı çirkinlik.
Internet Explorer 'addEventListener''ü [sürüm 9'dan itibaren] destekler (http://msdn.microsoft.com/en-us/library/ie/ff975245 (v = vs.85) .aspx). – Sampson
jcalfee314'ün fikri benim için çalıştı - window.onload = onLoad
vardı, bu da <body onload="...">
'daki işlevlerin çağrılmadığı anlamına geliyordu (kontrolüm yok).
oldOnLoad = window.onload
window.onload = onLoad;
function onLoad()
{
oldOnLoad();
...
}
Edit:
Bu düzelttim Firefox yüzdenoldOnLoad = window.onload
ile değiştirilir,
oldOnLoad = document.body.onload;
gibi değildi.
Rusky'nin Andrea'nın yanıtı üzerine kaydettiği gibi, window.onload document.body.onload dosyasından farklıdır; Her şey yüklendikten sonra, yalnızca DOM’tan değil. – Muhd
Firefox en az 10.10'a kadar eski sürümleri desteklediğinden beri oldOnLoad = document.body.onload, bunun bir varyasyonunu kullanıyorum: if (oldOnLoad = document.body.onload) {document.body.onload = onLoad; } else {oldOnLoad = window.onload; window.onload = onLoad; }. Bu, çoğu tarayıcıda ne istediğimi veriyor, gerektiğinde bir geri dönüş olarak window.onload seçeneğiyle. – arlomedia
Çapraz tarayıcı window.load olay
function load(){}
window[ addEventListener ? 'addEventListener' : 'attachEvent' ](addEventListener ? 'load' : 'onload', load)
Kısa ve noktaya! –
Harika şeyler :) – Jake
Neden jQuery kullanmıyor?
$(document).ready(function(){}))
Bildiğim kadarıyla, bu mükemmel bir çözümdür.
Bu, tüm belgenin yüklenmesinden önce patlar. – rbrundritt
Neden sadece örneğinizde yaptığınız şeyi kullanmıyorsunuz? Benim için çalışıyor – Zac