Tôi chỉ muốn bao gồm tệp JavaScript nếu trình duyệt không phải là trình duyệt IE. Có cách nào để làm điều này không?Bao gồm các tệp JavaScript khác nhau tùy thuộc vào trình duyệt?
Trả lời
Bạn có thể làm điều đó với conditional comments của IE, như vậy:
<![if !IE]>
<script src="your-non-IE-script.js" type="text/javascript"></script>
<![endif]>
Lưu ý rằng ở trên được xử lý bởi trình duyệt không phải IE vì có điều kiện là không một nhận xét HTML , nhưng một hướng dẫn chế biến, do đó, bit ở giữa được xử lý bởi các trình duyệt không phải IE. IE thấy điều kiện và bỏ qua nội dung vì nó hiểu các phương tiện có điều kiện "Không phải bạn, di chuyển cùng."
Nếu bạn muốn làm một cái gì đó chỉ cho IE, bạn sử dụng một hình thức đó là tương tự, nhưng sử dụng HTML ý kiến thay vì (với --
) bởi vì đó là cách duy nhất bạn có thể dựa vào các trình duyệt khác bỏ qua các nội dung. IE biết phải chú ý đến họ, mặc dù họ đang bình luận. Thông tin thêm về liên kết ở trên.
Lưu ý rằng có một ý nghĩa trang tốc độ tải trên IE (không phải là trình duyệt khác) khi bạn sử dụng ý kiến có điều kiện (họ tạm thời chặn tải về các nguồn lực khác), thêm ở đây: http://www.phpied.com/conditional-comments-block-downloads/
Update 2013 : IE10 + không hỗ trợ nhận xét có điều kiện nữa.
Tôi chỉ muốn lưu ý rằng đó không phải là hướng dẫn xử lý. Nó chỉ là cú pháp Microsoft độc quyền. Lệnh xử lý ở dạng dữ liệu ' Processing-instruction-name-here ... ở đây ...?>'. –
@Eli: Chắc chắn rồi (http://en.wikipedia.org/wiki/Processing_Instruction). Wow, tôi luôn nghĩ rằng họ đang xử lý hướng dẫn. Cảm ơn! –
Bạn có thể làm điều đó một cách hoàn toàn khác [chèn thứ gì đó CHỈ nếu IE] sử dụng Nhận xét có điều kiện, có thể điều đó sẽ giúp bạn.
Bạn cũng có thể chèn một cái gì đó chỉ khi nó * không * IE, bằng cách sử dụng bình luận có điều kiện của IE. Vâng thật đấy. –
Điều cần biết - cảm ơn! –
Bạn có thể sử dụng một IE conditional comment.
Để có được cái gì đó sẽ hiển thị trong các trình duyệt khác ngoài IE, nhưng không phải trong IE, và đó vẫn sẽ xác nhận, bạn có thể sử dụng:
<!--[if !IE]>-->
<script src="..."></script>
<!--<![endif]-->
Làm thế nào về chuyển nó xung quanh? Nếu đây là khả năng bạn có thể sử dụng nhận xét có điều kiện của IE: http://www.quirksmode.org/css/condcom.html
Nếu không, bạn có thể đánh lừa tác nhân người dùng nhưng điều này được coi là 'thực hành không tốt'.
Bạn không cần phải xoay vòng, các bình luận có điều kiện của IE có thể được sử dụng để nhắm mục tiêu các trình duyệt không phải IE (có, thực sự). –
Đầu tiên, lưu ý: Đây không thực sự là một thực hành tốt. Nếu có thể, bạn nên cố gắng thiết kế trang web của mình theo cách không thuyết phục trên trình duyệt để nó hoạt động nhất quán trên tất cả các trình duyệt mà không cần phải duy trì các mẹo và thủ thuật cho các sự cố dành riêng cho trình duyệt.
Nhưng nếu bạn thực sự muốn làm điều này, đó là dễ dàng nhất để bao gồm một tập tin duy nhất nếu trình duyệt là IE: (. Bao gồm các tập tin chỉ khi trình duyệt IE6 hoặc ít hơn)
<!--[if lt IE 7]>
<script type="text/javascript" src="global.js"></script>
<![endif]-->
Tuy nhiên, nếu bạn thực sự muốn làm điều đó theo cách khác xung quanh, đây là một số lựa chọn của bạn:
- Sử dụng trình duyệt server-side sniffing để xử lý các trình duyệt trước khi trang được vẽ.Tức là, sử dụng ngôn ngữ phía máy chủ (Java, PHP, bất kỳ thứ gì) để xác định trình duyệt (thường là thông qua chuỗi tác nhân người dùng) và sau đó có điều kiện bao gồm các tệp JS của bạn theo cách đó. (Ví dụ: bạn có thể sử dụng chức năng
get_browser
của PHP.) - Sử dụng trình duyệt phía máy khách để đánh vần để gọi một tệp JS khác nếu trình duyệt không phải là IE. Bạn có thể xác định trình duyệt bằng cách sử dụng JavaScript, sau đó chèn một tệp JS khác vào trang nếu trình duyệt là bất kỳ thứ gì ngoài IE. (Ví dụ: bạn có thể sử dụng chức năng
browser
của jQuery.) - T.J.'s answer cũng cung cấp cách thực hiện nó với các nhận xét có điều kiện của I.E.
Vâng, kịch bản có điều kiện cho IE là câu trả lời của bạn:
<!--[if lt IE 7 ]>
<script src="/js/my_ie_script.js"></script>
<![endif]-->
Điều đó sẽ làm trái ngược với những gì OP yêu cầu. –
Dang, bạn đã đúng. Làm thế nào tôi đã bỏ lỡ 'không' trong câu hỏi của OP. Muộn rồi! – mkoistinen
Nó ít được biết đến hơn là nhận xét có điều kiện, nhưng tôi nghĩ rằng tôi muốn đề cập rằng bạn cũng có thể sử dụng tính năng IE gọi là có điều kiện biên soạn - xem http://msdn.microsoft.com/en-us/library/7kx09ct1%28VS.80%29.aspx
dụ này xuất phát từ tài liệu của họ:
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
document.write("JScript Version 5.0 or better.<BR>");
@else @*/
document.write("You need a more recent script engine.<BR>");
/*@end @*/
- 1. Bao gồm các tệp khác nhau trong Jekyll tùy thuộc vào ngôn ngữ
- 2. C++ bao gồm trình duyệt tập tin
- 3. Các trình duyệt khác nhau, các IP khác nhau?
- 4. Codeigniter: Cách bao gồm các tệp javascript
- 5. Đọc nội dung tệp ở phía máy khách trong javascript trong các trình duyệt khác nhau
- 6. Mã javascript này có phụ thuộc vào trình duyệt không?
- 7. Bao gồm tệp Javascript trong các trang html- điều gì sẽ xảy ra bên dưới trong trình duyệt?
- 8. Cách phân phối các tệp javascript khác nhau theo chiều rộng của trình duyệt
- 9. bao gồm các tệp tiêu đề từ các thư mục khác nhau?
- 10. Jade: Cách bao gồm tệp javascript
- 11. Tính năng bao gồm các tệp JSP vào mùa xuân và động bao gồm
- 12. Trình tự javascript bao gồm trong Orchard
- 13. Bao gồm các tệp kết cấu vào tệp collada
- 14. Spring MVC - bao gồm các tệp tĩnh/javascript, css
- 15. Stack Overflow bao gồm các tệp Javascript như thế nào?
- 16. Bao gồm các tệp R?
- 17. Làm cách nào để Javascript của bạn có điều kiện, tùy thuộc vào trình duyệt?
- 18. CMake: opengl bao gồm dirs được đặt tên khác nhau trên các nền tảng khác nhau
- 19. Bao gồm một tệp JSP khác
- 20. Vị trí div tùy thuộc vào cạnh trình duyệt từ xa (javascript)
- 21. cmake bao gồm h tệp từ các thư mục khác
- 22. Bao gồm tệp JavaScript trong một phần lượt xem
- 23. Tự động bao gồm JavaScript và đợi
- 24. Cách bao gồm các tệp cấu hình khác trong web.xml
- 25. Các tệp Javascript có nên bao gồm BOM hay không?
- 26. Tự động bao gồm các tệp XSL khác trong XSLT
- 27. Clearing ngăn xếp bao gồm các hoạt động trong nhiệm vụ khác nhau
- 28. Chế độ xem khác nhau tùy thuộc vào ContentControl (Caliburn.Micro)
- 29. Tiền tố CSS cho các trình duyệt khác nhau?
- 30. Hỗ trợ các phiên bản Javascript khác nhau trong các trình duyệt
bạn có muốn sử dụng chỉ javascript để làm điều này hoặc bạn có đang sử dụng ngôn ngữ phía máy chủ không? –