2012-01-18 27 views

Trả lời

29

Có, một tập lệnh nội dung "Tiện ích mở rộng của Chrome" có thể chạy trong tất cả iframe (ban đầu là trong HTML khi trang được tải). Để có kịch bản nội dung chạy trong tất cả các khung bạn cần phải cấu hình nó để làm như vậy trong manifest.json Chrome Extension sử dụng all_frames tài sản:

http://code.google.com/chrome/extensions/content_scripts.html

{ 
    "name": "My extension", 
    ... 
    "content_scripts": [ 
    { 
     "matches": ["http://www.google.com/*"], 
     "css": ["mystyles.css"], 
     "js": ["jquery.js", "myscript.js"], 
     "all_frames": true 
    } 
    ], 
    ... 
} 

Không, các kịch bản nội dung sẽ KHÔNG thực hiện trong iframe được tải động qua JavaScript trong trang.

+0

Có cách nào để làm cho tập lệnh nội dung thực thi trên JS được nạp động không? Hoặc là nó chỉ là không thể? – Honoki

+0

@Honoki Tôi không tin có bất kỳ cách nào để mở rộng phần mở rộng của Chrome để thêm JS vào iframes được thêm động vào JavaScript sau khi trang đã tải. Tuy nhiên, nếu bạn kiểm soát nội dung của iframe thì bạn có thể làm bất cứ điều gì bạn muốn. Bạn đang cố gắng tải gì trong khung nội tuyến? Có thể có một API Web có thể khiến bạn muốn bạn cần - nếu không phải là Yahoo + YQL có thể tiện dụng để lấy nội dung ra khỏi các trang web khác không có API Web/REST tốt. –

+0

Có vẻ như từ thử nghiệm của tôi rằng contentcripts * do * được thực hiện trong iframe mới tạo ... cũng lưu ý rằng nó đang chạy các bản sao riêng biệt của contentcript.js của bạn, một lần cho mỗi khung nội tuyến (mặc dù họ có thể giao tiếp với nhau qua tin nhắn) và một lần cho tài liệu chính ... – rogerdpack

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