开发者

Accessing iframes from a Chrome content-script extension

开发者 https://www.devze.com 2023-01-20 04:56 出处:网络
I\'m writing a Chrome extension that needs to alter a popular web app when loaded. Unfortunately, most of the UI of that web app is rendered inside an iframe, and although the address of that iframe m

I'm writing a Chrome extension that needs to alter a popular web app when loaded. Unfortunately, most of the UI of that web app is rendered inside an iframe, and although the address of that iframe matches my content_scripts match declaration, the user script only gets invoked for the top frame.

Q: Is there a method of accessing HTML rendered inside an iframe from a Chrome content script extension? If yes, what permissions and other manife开发者_高级运维st options should I specify? Thanks.


I've resolved the problem. The following option has to be specified in the content_scripts section of the manifest.json: "all_frames": true. Without it, the script is only applied to the top frame.

// Sometimes one just has to RTFM carefully.


Even "all_frames": true doesn't seem to help in the case of iframes without @src. This is discussed in the bug http://code.google.com/p/chromium/issues/detail?id=20773, which also covers some workarounds, including getting the contentDocument of the iframe element in the source page, e.g. $('a', $($("#canvas_frame")[0].contentDocument)).

This bug is not exactly the problem you were having (you wanted to load your content script inside the iframe, not interact between the iframe and the outer frame) but I think that most people who have one of the problems will have the other one as well.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号