internet pencereler Android
Genişletmek

Javascript işlevleri Sayfa yüklenirken bir işlev nasıl çalıştırılır? J'ler sayfa yüklendiğinde bir işlevi çalıştırır.



sayfayı yüklerken düğmeye basmak (4)

Sayfa yüklendiğinde bir işlevi çalıştırmak istiyorum ancak onu .

Eğer onu başlatırsam çalışacak bir betiğim var, örneğin:

İşlev codeAddress() ( // code )

Ama bunu olmadan çalıştırmak istiyorum ve birçok şeyi denedim, örneğin:

Window.onload = codeAddress;

Ama işe yaramıyor.

Peki sayfa yüklendiğinde bunu nasıl tetikleyebilirim?

window.onload = function() ( ... vb. harika bir cevap değil.

Bu muhtemelen işe yarayacaktır, ancak aynı zamanda bu olaya bağlı olan diğer işlevleri de bozacaktır. Veya sizinkinden sonra başka bir fonksiyon bu olayı yakalarsa bozulur. Yani, işe yarayan bir şeyin neden artık var olmadığını anlamak için saatlerce uğraşabilirsiniz.

Burada daha güvenilir bir cevap:

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 = İşlev Adınız; ))

Yazarın hakkını vermek için kullandığım bazı kodları nereden bulduğumu unuttum.

Function my_function() ( // sayfa yüklendikten sonra çalıştırmak istediğim kod ne olursa olsun ) if (window.attachEvent) (window.attachEvent("onload", my_function);) else if (window.addEventListener) (window.addEventListener("load) ", işlevim, false);) else (document.addEventListener("load", işlevim, false);)

Bu yardımcı olur umarım :)

Yerel JavaScript, jQuery veya window.onload kullanmak yerine, jQuery'nin piyasaya sürülmesinden bu yana bazı harika özellikleri benimsedi. Artık tüm modern tarayıcıların jQuery kitaplığını kullanmadan kendi DOM hazır işlevleri var.

Document.addEventListener("DOMContentLoaded", function() ( warning("Hazır!"); ), false);

window.onload = kodAdresi; çalışması gerekir - ve kodun tamamı şöyledir:

Test fonksiyonu codeAddress() ( warning("ok"); ) window.onload = codeAddress;

Test işlevi codeAddress() ( warning("ok"); )

DOM yüklendiğinde çeşitli işlevleri çalışacak şekilde yapılandırmanıza olanak tanıyan domReady betiğine bir göz atın. Bu temel olarak Dom'un birçok popüler JavaScript kitaplığında yapmaya hazır olarak geldiği şeydir, ancak hafiftir ve benimsenip harici komut dosyanızın başına eklenebilir.

Kullanım örneği

// domReady betiğine referans ekleyin veya betiğin içeriğini buraya fonksiyondan önce yerleştirin codeAddress() ( ) domReady(codeAddress);

Bugün Javascript öğrenmeye başlayan kişilerde sıklıkla ortaya çıkan bir sorundan bahsetmek istiyorum.

Sayfadaki kodda komut dosyasının kendisinden daha düşük olan HTML öğeleriyle etkileşim kurmaya çalışırlar. Buna göre, komut dosyası zaten yüklenmiştir, ancak etkileşime girmeniz gereken öğe henüz yüklenmemiştir. Bu sebeple hiçbir şey işe yaramayacaktır.

Javascript dilinin özelliği, kodunun kaynak kodda yazıldığı gibi satır satır sırayla yürütülmesidir.

İşte bir örnek:

Başlıksız belge

#block kimliğine sahip öğeye css kuralı (arka plan rengi: sarı) uygulanmayacaktır çünkü astar

$("#block").css("arka plan rengi", "sarı");

Html satırı yüklenmeden önce yürütülecek:

Ya yalnızca belgenin tamamı tamamen yüklendikten sonra kod veya işlevi çalıştırmamız gerekirse?

Bunu yapmanın üç yolundan bahsetmek istiyorum.

1 yol. Jquery kütüphanesini kullanma.

Çoğu zaman bunu kendim kullanırım, en basit ve en uygun çözümdür, ancak Jquery kitaplığının bağlanmasını gerektirir.

Aşağıdaki yöntemi kullanırsak önceki kodun nasıl dönüştürüleceği aşağıda açıklanmıştır.

#block (width:100px; height:100px; border:1px katı #ccc;) $(document).ready (function())( $("#block").css("background-color", "yellow" ) )); Başlıksız belge

Yöntem 2. Body öğesini ve onload özelliğini kullanma.

#block (width:100px; height:100px; border:1px katı #ccc;) function funonload() ( $("#block").css("background-color", "yellow"); ) Başlıksız belge

3 yollu. Window nesnesini ve onun onload özelliğini kullanma.

#block (width:100px; height:100px; border:1px katı #ccc;) function funonload() ( $("#block").css("background-color", "yellow"); ) window.onload = eğlenceli yük; Başlıksız belge

Durumunuza en uygun yöntemi seçin ve uygulamaya koyun.

Zaten JavaScript'i az çok biliyorsanız, muhtemelen onload adı verilen Load olay işleyicisini duymuşsunuzdur. Bu olay doğrudan sayfa yüklendiğinde tetiklenir. Ve çoğu zaman sayfa yüklendiğinde bazı işlevlerin yürütülmesi gerekir. Peki ya birden fazla JavaScript işlevini çalıştırmanız gerekiyorsa? Aslında bu soru sitedeki kullanıcılardan biri tarafından soruldu. Bu nedenle bu yazımda onload'da çeşitli fonksiyonların başlatılması hakkında yazacağım.

Çözüm gerçekten önemsiz; sadece gerekli tüm diğer işlevlerin başlatıldığı bir işlevi çalıştırın:



fonksiyon a() (
B()
C();
}
fonksiyon b() (
alarm("b() fonksiyonu başlatıldı");
}
fonksiyon c() (
warning("c() fonksiyonu başlatıldı");
}



Bu sayfayı açarsanız (kodun anlaşılmasını kolaylaştırmak için html etiketi veya örneğin sayfanın başlığı ve kodlaması gibi önemli şeyler yoktur), b() ve c'nin nasıl olduğunu göreceksiniz. () işlevleri sayfa yüklendiğinde çalışır.