it-swarm-id.com

Menambahkan file javascript di footer & gaya khusus

Untuk memuat halaman dengan cepat, saya harus memasukkan JS di akhir halaman dari komponen dan modul.

Cara mendeklarasikan skrip berikut tidak berfungsi untuk menyisipkannya di bagian bawah karena tidak ada parameter untuk meletakkannya di footer.

$rsws_document  = JFactory::getDocument(); 
$rsws_document->addScript();

Jadi apa cara singkat untuk memenuhi tujuan saya? Jika joomla tidak menyediakan fungsi seperti itu maka itu adalah kelemahan yang signifikan untuk kecepatan memuat halaman.

Saya juga ingin menambahkan stylsheets khusus dari modul sehingga mereka disuntikkan ke halaman hanya sekali bahkan jika modul yang sama menambahkannya beberapa kali di halaman itu -

<style type="text/css"> .classname { color:red; }.....</style>

Bagaimana saya bisa mencapai ini?

9
dev-m

JDocument-> addScript () memiliki opsi untuk menunda pemuatan skrip dan/atau memuatnya async. Lihat dokumen API: http://api.joomla.org/cms-3/classes/JDocumentHTML.html#method_addScript

Ini akan memungkinkan browser untuk memuat skrip nanti dalam proses, yang akan membantu dengan waktu pageload.

Tidak ada API untuk memuat skrip di bagian bawah halaman. Jika Anda membutuhkannya, Anda harus menggunakan ekstensi pihak ke-3 atau menambahkannya ke template secara langsung.

6
Bakual

Tidak ada metode untuk menambahkan skrip ke footer sekarang. Namun Anda dapat membuat plugin yang mendapatkan output, mencari tag dengan nama yang sesuai, seperti footer dan menggunakan str_replace untuk menambahkan kode Anda.

Tetapi Anda dapat menggunakan ekstensi ini untuk mencapai itu:

  1. ScriptsDown
  2. JCH Optimize

Saya juga menemukan satu metode. Saya lebih suka untuk tidak meretas kode inti, tapi itu yang terbaik yang bisa saya lakukan saat ini.

silakan periksa tautan ini - File Javascript termasuk dalam footer

Saya harap ini akan membantu orang lain :)

2
Joomler

Sekarang saya pikir tidak ada pilihan untuk memuat skrip di bagian bawah halaman.

Untuk pertanyaan kedua, Anda bisa menggunakan properti boolean statis dan menyetelnya ke true saat pertama kali css Anda dirender. Untuk instance modul berikut, cukup uji properti ini untuk memutuskan apakah Anda perlu menambahkan css atau tidak.

Mungkin tempat yang baik untuk menambahkan properti statis ini adalah kelas pembantu modul.

Salam,

2
Pep Lainez

Kami menggunakan modul yang disebut "Modul Kosong", yang memungkinkan untuk menempatkan skrip apa pun (PHP, Java, CSS, HTML, apa pun) dan memilih tempat memuatnya (kepala, badan, ujung tubuh, dll).

Ini gratis, dan saya merasa sangat berguna: http://extensions.joomla.org/extensions/core-enhancements/coding-a-scripts-integration/custom-code-in-modules/3668

Untuk memindahkan skrip dari bawah ke bawah, itu adalah pekerjaan yang sedikit lebih. Gunakan ini:

Sertakan dalam templat:

 <? php 
 $ head = $ doc-> getHeadData (); 
 // Hapus Skrip 
 tidak disetel ($ doc -> _ script [JURI :: root (benar). '/media/system/js/mootools-more.js']); 
?>

Tambahkan satu baris "tidak disetel" untuk setiap skrip yang perlu Anda hapus dari kepala. Kemudian tambahkan ke pemuatan modul kosong di bagian bawah (posisi debug?). Satu plus, jika Anda membuat modul kosong yang berbeda adalah Anda hanya dapat memuat skrip jika diperlukan (seperti, contoh modul hanya untuk motool, memuatnya hanya pada halaman tertentu).

Untuk gaya, Anda juga dapat menggunakan Modul Kosong.

Saya harap ini membantu.

$ document-> addScript () selalu menambahkan skrip di bagian header sebelum tag. Jadi, jika Anda ingin memuat file skrip di bagian bawah halaman maka Anda harus memasukkan js dalam file itu dengan hanya menggunakan <script src="{pathtojacvascriptfile}"></script>

Saya harap ini bisa membantu

2
user5491

Saya belum mencoba sendiri. Anda dapat membuat modul yang tidak menampilkan HTML, hanya mencetak skrip dan gaya, tetapi berada di posisi modul bawah di halaman tempat modul Anda yang lain ditampilkan.

0
Hung Tran