Tôi đang tạo một plugin jquery và tôi muốn xác minh tập lệnh bên ngoài được tải. Điều này là dành cho một ứng dụng web nội bộ và tôi có thể giữ cho tên tập lệnh/vị trí nhất quán (mysscript.js). Đây cũng là một plugin ajaxy có thể được gọi nhiều lần trên trang.Xác minh kịch bản bên ngoài được tải
Nếu tôi có thể xác minh các tập lệnh không được nạp tôi sẽ tải nó sử dụng:
jQuery.getScript()
Làm thế nào tôi có thể xác minh các tập lệnh được nạp bởi vì tôi không muốn kịch bản tương tự nạp trên trang hơn hơn một lần? Đây có phải là điều mà tôi không cần phải lo lắng về do bộ nhớ đệm của tập lệnh không?
Cập nhật: tôi không thể kiểm soát được những người sử dụng plugin này trong tổ chức của chúng tôi và có thể không có khả năng thực thi các kịch bản không phải là đã có trên trang có hoặc không có một ID cụ thể, nhưng tên kịch bản sẽ luôn ở cùng một nơi với cùng tên. Tôi hy vọng tôi có thể sử dụng tên của kịch bản để xác minh nó thực sự được tải.
Trong số phiếu bầu, nếu không tôi sẽ +1 câu trả lời này. – shanabus
Đây là một câu trả lời hay, không may là phương thức jquery.getScript thêm tập lệnh mà không có nguồn nào được chỉ định. Vì vậy, tôi đã không thể tìm thấy nó. Tôi đã sử dụng một phần câu trả lời của bạn để giải quyết vấn đề này thành +1. – AGoodDisplayName
@AGoodDisplayName Trong phần gọi lại cho '$ .getScript()', bạn có thể đặt cờ toàn cầu có thể được kiểm tra: '$ .getScript (', function() {window.myCustomFlag = true;}')'. Sau đó, bạn chỉ có thể kiểm tra sự tồn tại của phần tử '
Tạo thẻ tập lệnh bằng một ID cụ thể và sau đó kiểm tra xem ID đó có tồn tại không?
Cách khác, lặp qua thẻ tập lệnh để kiểm tra tập lệnh 'src' và đảm bảo rằng các tệp đó chưa được tải với cùng giá trị như giá trị bạn muốn tránh?
Edit: theo dõi phản hồi rằng một ví dụ mã sẽ có ích:
Nguồn
2012-03-01 17:49:45 MyStream
+1 cho một câu trả lời tốt trước khi câu hỏi đã được cập nhật – zeroef
Đây là giải pháp hoàn hảo. Tôi đề nghị thứ hai. –
Thật tuyệt vời nếu có thể đặt mã với những ý tưởng này. –
Chủ đề này nằm trong các thẻ SO jquery Hỏi đáp và có một loạt lớn các phương pháp để kiểm tra kịch bản exisitng
Best way to use Google's hosted jQuery, but fall back to my hosted library on Google fail
Rất nhiều phản hồi về phương pháp khác nhau
Nguồn
2012-03-01 17:57:53 charlietfl
câu trả lời hay, cho một câu hỏi khác nằm trong tâm trí của tôi về CDN. +1 – AGoodDisplayName
này rất đơn giản bây giờ mà tôi nhận ra làm thế nào để làm điều đó, nhờ vào tất cả các câu trả lời để dẫn tôi đến giải pháp. Tôi đã phải từ bỏ $ .getScript() để xác định nguồn gốc của kịch bản ... đôi khi làm những việc thủ công là tốt nhất.
Giải pháp
Nguồn
2012-03-01 19:16:38 AGoodDisplayName
Một cách khác để kiểm tra một kịch bản bên ngoài được nạp hay không, bạn có thể sử dụng dữ liệu chức năng của jquery và lưu trữ một lá cờ xác nhận. Ví dụ như:
Nguồn
2014-06-12 04:37:32
Hoạt động tốt cho những gì tôi cần làm. cảm ơn –
Kết hợp một vài câu trả lời từ trên vào một cách dễ dàng để sử dụng chức năng
Nguồn
2017-06-15 19:53:35