Tôi đã thực hiện các thao tác sau để đưa jQuery từ Google CDN vào Magento:
<default>
<reference name="head">
<block type="core/text" name="google.cdn.jquery">
<action method="setText">
<text><![CDATA[<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><script type="text/javascript">jQuery.noConflict();</script>]]>
</text>
</action>
</block>
</reference>
</default>
Tuy nhiên, khi tôi muốn triển khai nó với một dự phòng cục bộ, hoạt động khá tốt, tôi kết thúc việc thêm nó vào .phtml của mình như vậy:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
if (!window.jQuery) {
document.write('<script src="/path/to/your/jquery"><\/script>');
}
</script>
- Có cách nào thanh lịch hơn để làm điều này trong local.xml hơn là chuyển dự phòng vào
<text>
nút như tôi đang làmjQuery.noConflict
không?
Chỉnh sửa:
Để thu hút sự chú ý đến phần khác của câu hỏi - có mô-đun cộng đồng nào bao gồm jQuery cho bạn không? Nếu họ có một jQuery cục bộ, điều đó tốt - nếu họ sử dụng Google CDN - thậm chí còn tốt hơn. Nếu điều này không nằm ngoài đó, tôi rất thích tạo ra nó.
- Có bất kỳ tiện ích mở rộng nào xử lý việc này mà không cần tôi phải tự khởi động nó không?
<text>
phương pháp như mô tả ở trên ... không chắc đó có phải là một giải pháp chấp nhận được hay không. Mô-đun n98 sử dụng một tệp js riêng bao gồm tệp để gọi noConflict, tuy nhiên, tôi cho rằng ...