làm cách nào tôi có thể sử dụng jQuery trong tiện ích mở rộng google chrome của mình mà không xung đột với các tập lệnh trên trang web? bởi vì khi tôi sử dụng jQuery và một tập lệnh khác trên trang web sử dụng $, tập lệnh nội dung của tôi chết hoặc trang web đó chết,Làm thế nào để sử dụng jQuery trong nội dung tiện ích mở rộng của Chrome mà không có xung đột
Trả lời
Câu trả lời là bạn không cần sử dụng "các chức năng riêng tư tự chạy". Bạn cần hiểu rằng các tập lệnh nội dung là executed in isolation vì vậy không thể xung đột với các tài nguyên được các trang web sử dụng theo thiết kế.
Nếu bạn muốn sử dụng thư viện trong tập lệnh nội dung, phương pháp ưa thích là chỉ cần bao gồm nó trong tiện ích mở rộng/ứng dụng của bạn và sau đó tải nó trước trong tệp kê khai của bạn;
{
...
"content_scripts": [
{
"matches": ["http://www.google.com/*"],
"js": ["jquery.js", "myscript.js"]
}
]
...
}
Điều này sẽ dẫn đến jquery.js được tải vào môi trường tập lệnh nội dung riêng của bạn và sau đó là myscript.js. Mã của bạn sẽ sạch hơn và mô đun hơn vì nó không chứa mã số được minified cho các thư viện bên ngoài.
Nguồn:https://developer.chrome.com/extensions/content_scripts
Đây không phải là vấn đề do cách các tập lệnh nội dung thay đổi môi trường JavaScript. Phần [môi trường thực thi] (http://code.google.com/chrome/extensions/content_scripts.html#execution-environment) của tài liệu chính thức trình bày điều này khá tốt. – Alasdair
Tôi thấy rằng tài liệu bao gồm chính xác trường hợp jquery: "Ví dụ: một tập lệnh nội dung có thể bao gồm JQuery v1 và trang có thể bao gồm JQuery v2 và chúng sẽ không xung đột với nhau". –
jQuery chính nó chỉ là một thư viện và không thực hiện bất kỳ thay đổi mà bạn không nói với nó. Giống như hầu hết các thư viện thư viện phổ biến, nó chỉ cho thấy chức năng của nó thông qua việc sử dụng một hoặc nhiều biến toàn cầu. Nếu bạn đang sử dụng thư viện thay đổi DOM mà không có bất kỳ hướng dẫn nào, bạn có thể nhận thức được nó vì hành vi đó có lẽ sẽ đi đôi với chức năng của nó. – Alasdair
Tôi không nhận được nó. Các tập lệnh nội dung và trang được phân lập. –