it-swarm-tr.com

window.addEvent ('domready', ...) alternatifi

Sayfamda google kodunun uyarlanmış bir versiyonunu kullanıyorum ve bu da Mathematica kodunu vurgulamama izin veriyor. Gerekli js kodunun doğru enjeksiyonu için JPrettify eklentisi oldukça kullanışlıdır. Bu eklenti artık resmi olarak mevcut olmadığından ve yine de Tweak yapmam gerektiğinden, GitHub üzerinde kendi sürümümü ayarladım.

Dün gerçeğe işaret ettim Joomla 3'te işe yaramadı ve bazı hata ayıklamalarından sonra PrettyPrint işlevinin aşağıdaki gibi eklendiğinde çağrılmadığını öğrendik html kafası:

window.addEvent('domready', function() { prettyPrint();});

JPrettify (satır 53) bunu yaparlar. Biraz googling yaptıktan sonra sorunun mootools kütüphane olduğu ortaya çıkıyor. Sorunu statik olarak ekleyerek çözdük

<body onload="PrettyPrint()">

ana şablon php dosyasına, tabii ki gitmek için doğru yol değildir.

Soru: Eklentinin Joomla'nın farklı sürümlerinde çalışmasını sağlamak için PrettyPrint() çağırmanın en iyi yöntemi nedir?

6
halirutan

Vücut yükü yapmak yerine, aşağıdakiler çalışmalıdır:

$(document).ready(function() {
    PrettyPrint();
});

Veya işlevin ne zaman çağrıldığını belirlemek için Javascript kullanmayı tercih edebilirsiniz:

window.onload = function() {
    PrettyPrint();
};
2
Lodder

Joomla 3 içinde Mootools tabanlı komut dosyalarını kaldırmak ve bunları jQuery komutlarıyla değiştirmek için devam eden bir çalışma var. Kodunuzun başarısız olmasının ana sorunu Mootools'u kendiniz yüklememenizdir. Joomla'nın önceki sürümlerinde, ana düzen veya modül tarafından yüklenmiş olabilir ve artık komut dosyaları artık gerekmediği için artık yüklenmiyor.

Bu yüzden modülünüz için ihtiyacınız varsa, JHtmlBehavior::famework() ( http://api.joomla.org/cms-3/classes/JHtmlBehavior.html#method_framework ) kullanarak yükleyin.

Komut dosyanızı jQuery kullanmak için yeniden yazarsanız da aynı şey geçerlidir. Yüklendiğine güvenmeyin, Joomla'ya ihtiyacınız olduğunu söyleyin. Joomla sadece bir kez yüklenmesine özen gösterir. JQuery yüklemek için JHtmlJquery::framework() ( http://api.joomla.org/cms-3/classes/JHtmlJquery.html#method_framework ) kullanırsınız.

2
Bakual