2012-04-17 42 views
7

Tôi muốn chạy tập lệnh nội dung trên iframe có URL mở rộng chrome: //. Tôi đã thêm một dòng để manifest.json của tôi mà tôi sao chép ra các tài liệu http://code.google.com/chrome/extensions/match_patterns.htmlContent_scripts có khớp với "chrome-extension: // */*" không?

chrome-extension://*/* 

Nhưng khi tôi tải lại phần mở rộng của tôi, tôi nhận được thông báo:

Could not load extension from '/work/sirius/extension'. 
Invalid value for 'content_scripts[2].matches[0]': Invalid scheme. 

Bất kỳ ý tưởng làm thế nào để có được điều này để làm việc ?

+0

Như đã lưu ý trong câu trả lời của @Konstantin Smolyanin bên dưới, tài liệu hiện không nói gì về khả năng chèn tập lệnh nội dung vào phần mở rộng 'chrome-extension: '. –

Trả lời

7

Không. Chỉ có ftp:, file:, http:https: có thể khớp với khai báo tập lệnh nội dung.

Mẫu URL không hợp lệ tại bất kỳ trường nào trong số các trường matchesexclude_matches bị từ chối (tạo ra lỗi khi cố gắng tải tiện ích mở rộng).

Mẫu không hợp lệ tại permissions option in the manifest file bị bỏ qua.

Nếu bạn muốn chạy tập lệnh trên một tab từ tiện ích, hãy sử dụng chrome.extension.getViews trong tập lệnh nền của bạn. Thậm chí tốt hơn, hãy thiết kế các trang của tiện ích mở rộng của bạn sao cho chúng effectively communicate with each other(example).

+0

Tôi muốn chạy tập lệnh nội dung trên khung nội tuyến trong trang web. chrome.extension.getViews() cho phép tập lệnh trên tiện ích mở rộng, không cho phép các trang web. – johnjbarton

+0

Tôi đang triển khai cơ chế truyền thông dựa trên postMessage cho khung nội tuyến, nhưng khung nội tuyến không phải là mã của tôi. Vì vậy, tôi muốn content_scripts cho phép tôi tiêm điểm cuối postMesssage(). – johnjbarton

+0

Liên kết ở trên với tùy chọn 'quyền trong tệp kê khai' dẫn tôi đến điều tra bằng cách sử dụng tính năng chèn tập lệnh có lập trình. Rất tiếc, điều này cũng không hoạt động: ứng dụng web lưu trữ tiện ích mở rộng chrome: // iframe không thể chạy mã mở rộng được yêu cầu để chèn vào khung nội tuyến của nó. Có lẽ tôi có thể viết một phần mở rộng riêng biệt để tiêm chương trình khi tab có một URL phù hợp. – johnjbarton

8

Tôi đang gặp vấn đề chính xác cùng, nhìn vào API http://code.google.com/chrome/extensions/match_patterns.html nó nói rõ ràng rằng họ chấp nhận chrome-extension://*/* nhưng họ thì không.

Họ cần cập nhật API để không gây nhầm lẫn cho mọi người.

+2

Có sự cố mở để sửa tài liệu: http://code.google.com/p/chromium/ Các vấn đề/chi tiết? id = 153245 – rsanchez

+1

Như câu trả lời của @Konstantin Smolyanin bên dưới, tài liệu đã được cập nhật. –

5

Dường như các tác giả Chrome đã âm thầm xóa khả năng chèn các tập lệnh nội dung vào chrome-extension: trang. Documentation vẫn nói rằng nó hoạt động và thậm chí chứa các ví dụ với chrome-extension: nhưng thực tế nó không hoạt động. Vì vậy, bây giờ chỉ có http:, https:ftp: hoạt động "từ hộp" và file: có thể hoạt động nếu người dùng tiện ích của bạn đã bật tính năng này trên trang Tiện ích mở rộng (chrome: // extensions /).

Cập nhật: bây giờ tài liệu được đề cập ở trên được cập nhật và không nói gì về khả năng chèn tập lệnh nội dung lên chrome-extension: trang.

Các vấn đề liên quan