Thêm tệp javascript theo kiểu chân trang & tùy chỉnh


9

Để tải trang nhanh, tôi cần chèn JS ở cuối trang từ các thành phần và mô-đun.

Cách khai báo script sau đây không hoạt động để chèn nó ở phía dưới vì không có tham số nào để đặt nó ở chân trang.

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

Vì vậy, những cách ngắn gọn để thực hiện mục đích của tôi là gì? Nếu j Joomla không cung cấp chức năng như vậy thì đó là một nhược điểm đáng kể cho tốc độ tải trang.

Tôi cũng muốn thêm các bảng tính tùy chỉnh từ một mô-đun để chúng chỉ được đưa vào trang một lần ngay cả khi cùng một mô-đun thêm nó nhiều lần trong trang đó -

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

Làm thế nào tôi có thể đạt được điều này?


1
Bạn nên giữ câu hỏi của bạn cho một chủ đề. Bạn có hai câu hỏi ở đây.
Bakual

1
có một phần mở rộng mà có thể giúp đỡ: extensions.joomla.org/extension/scriptsdown
noiragneau

Câu trả lời:


6

JDocument-> addScript () có các tùy chọn để trì hoãn việc tải tập lệnh và / hoặc tải nó không đồng bộ. Xem tài liệu API: http: //api.j Joomla.org/cms-3/groupes/JDocumentHTML.html#method_addScript

Điều này sẽ cho phép trình duyệt tải các tập lệnh sau này trong quá trình, điều này sẽ giúp với thời gian tải trang.

Không có API để tải các tập lệnh ở cuối trang. Nếu bạn cần điều đó, bạn phải sử dụng tiện ích mở rộng của bên thứ 3 hoặc thêm trực tiếp vào mẫu.


Vâng, tôi đã biết điều đó. Nhưng wordpress có các loại tính năng liên quan đến câu hỏi của tôi trong trường hợp cả hai tập lệnh và css tùy chỉnh. Vì vậy, Joomla nên thêm nó.
dev-m

Có một cuộc thảo luận để thêm một cái gì đó như thế. Cá nhân tôi không thấy lợi thế của việc thêm nó ở dưới cùng trên defer / async.
Bakual

2

Đến bây giờ tôi nghĩ không có tùy chọn nào để tải tập lệnh ở cuối trang.

Đối với câu hỏi thứ hai của bạn, bạn có thể sử dụng thuộc tính boolean tĩnh và đặt thành đúng khi lần đầu tiên css của bạn được hiển thị. Đối với các trường hợp mô-đun sau đây, chỉ cần kiểm tra thuộc tính này để quyết định xem bạn có cần thêm css của mình hay không.

Có lẽ một nơi tốt để thêm thuộc tính tĩnh này là một lớp trình trợ giúp mô-đun.

Trân trọng,


2

$ document-> addScript () luôn thêm tập lệnh trong phần tiêu đề trước thẻ. Vì vậy, nếu bạn muốn tải tệp tập lệnh ở cuối trang thì bạn cần bao gồm js trong tệp đó bằng cách sử dụng đơn giản<script src="{pathtojacvascriptfile}"></script>

Tôi hy vọng điều này có thể giúp


2

Không có phương pháp để thêm tập lệnh vào chân trang ngay bây giờ. Tuy nhiên, bạn có thể tạo một plugin có đầu ra, tìm kiếm một thẻ có tên thích hợp, như chân trang và sử dụng str numplace để thêm mã của bạn.

Nhưng bạn có thể sử dụng các tiện ích mở rộng này để đạt được điều đó:

  1. Sc ScriptDown
  2. Tối ưu hóa JCH

Ngoài ra tôi tìm thấy một phương pháp. Tôi không muốn hack mã lõi, nhưng đó là cách tốt nhất tôi có thể nghĩ ra vào lúc này.

vui lòng kiểm tra liên kết này - Các tệp Javascript có trong phần chân trang

Tôi hy vọng nó sẽ giúp người khác :)


2

Chúng tôi sử dụng một mô-đun gọi là "Mô-đun trống", cho phép đặt bất kỳ tập lệnh nào (PHP, Java, CSS, HTML, bất cứ thứ gì) và chọn nơi tải nó (phần đầu, phần thân, phần cuối của phần thân, v.v.).

Nó miễn phí và tôi thấy nó hoàn toàn hữu ích: http : //extensions.j Joomla.org/extensions/core-enhancements/coding-a-scripts-integration/custom-code-in-modules/3668

Để di chuyển các tập lệnh từ bên dưới đến bên dưới cơ thể, công việc nhiều hơn một chút. Dùng cái này:

Bao gồm trong mẫu:

<?
$ head = $ doc-> getHeadData ();
// Xóa tập lệnh
bỏ đặt ($ doc -> _ scripts [JURI :: root (true). '/media/system/js/mootools-more.js']);
?>

Thêm một dòng "bỏ đặt" cho mỗi tập lệnh bạn cần xóa khỏi đầu. Sau đó thêm nó vào tải mô-đun trống ở phía dưới (vị trí gỡ lỗi?). Một điểm cộng nữa, nếu bạn tạo các mô-đun trống khác nhau là bạn chỉ có thể tải các tập lệnh khi cần (như, một phiên bản mô-đun chỉ dành cho motools, chỉ tải nó trên một trang cụ thể).

Đối với kiểu, bạn cũng có thể sử dụng Mô-đun trống.

Tôi hi vọng cái này giúp được.


0

Tôi chưa thử một mình. Bạn có thể xây dựng một mô-đun không hiển thị HTML, chỉ in ra các tập lệnh và kiểu, nhưng nó ở vị trí mô-đun dưới cùng trên các trang nơi mô-đun khác của bạn được hiển thị.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.