Trong Chrome, bạn có thể tạo một phần mở rộng chứa tất cả của các tệp cục bộ mà bạn cần tải. Nó sẽ làm cho tập tin của bạn truy cập qua chrome-extension://...
thay vì file://...
Tạo một file có tên manifest.json
trong một thư mục mới và điền nó với:
{
"name": "File holder",
"manifest_version": 2,
"version": "1.0",
"web_accessible_resources": ["test.js", "other.js", "yetanother.js"]
}
Sau đó, đặt tất cả các kịch bản bạn muốn tải ở chỗ thư mục mới và đảm bảo chúng được bao gồm trong danh sách kê khai web_accessbile_reources
. Tải tiện ích mở rộng bằng cách truy cập chrome://extensions
, bật Developer Mode
và chọn thư mục mới với Load unpacked extension...
.
Giờ đây, bạn có thể truy cập tất cả các tệp trong thư mục tiện ích của mình bằng cách sử dụng chrome-extension://[app_id]/[file_name]
, trong đó "app_id
" là băm được liệt kê cho tiện ích mở rộng trên trang chrome://extensions
. Lưu ý rằng vì các giao thức và tên máy chủ khác với nơi bạn đã thực hiện công việc thực tế của mình (trừ khi bạn quyết định thực hiện tất cả sự phát triển của mình trong thư mục tiện ích mở rộng có thể chấp nhận được), tài nguyên tiện ích mở rộng là tên miền chéo và chỉ có thể được tải qua thẻ <script>
.
Bây giờ từ giao diện điều khiển, bạn có thể làm:
var s = document.createElement("script");
s.src = "chrome-extension://aefigdoelbemgaedgkcjpcnilbgagpcn/test.js";
document.body.appendChild(s);
(Giả sử tập tin của bạn là test.js
và id ứng dụng của bạn là aefigdoelbemgaedgkcjpcnilbgagpcn
.)
Đó là một chút khá gõ, tôi biết, nhưng có lẽ bạn có thể lưu trữ phần chrome-extension://[app_id]
dưới dạng biến viết tắt?
Nếu chúng tôi được phép chi nhánh bên ngoài JavaScript và trình duyệt, tại đây, có thể phục vụ tập lệnh của bạn trên máy chủ cục bộ (có thể bạn đang phát triển địa phương)? Bạn có thể khởi động một máy chủ cục bộ với một dòng Python. – cheeken
@cheeken: Vâng, đó thực sự là một ý tưởng tốt .. Tôi _do_ đã cài đặt Apache, và tôi anyway làm phát triển của tôi trong thư mục Apache, vì vậy đó là một lựa chọn tuyệt vời! – Manishearth