it-swarm-vi.com

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

Để 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?

9
dev-m

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.

6
Bakual

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 vào 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 - tệp Javascript bao gồm ở chân trang

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

2
Joomler

Đế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 trong 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
Pep Lainez

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ó (đầu, thân, cuối 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:

[.__.] <? php [.__.] $ head = $ doc-> getHeadData (); [.__.] // Xóa tập lệnh [.__.] unset ($ doc -> _ scripts [JURI :: root (đúng). '/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 thiết (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.

$ 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 đưa js vào tệp đó bằng cách sử dụng <script src="{pathtojacvascriptfile}"></script>

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

2
user5491

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ị.

0
Hung Tran