从Chrome内容脚本扩展程序访问iframe

时间:2010-10-14 20:39:16

标签: iframe google-chrome-extension userscripts

我正在编写一个Chrome扩展程序,需要在加载时更改流行的网络应用程序。不幸的是,该网络应用的大部分用户界面都是在iframe中呈现的,虽然该iframe的地址与我的content_scripts匹配声明相匹配,但只会为顶部框架调用用户脚本。

问:是否有一种方法可以从Chrome内容脚本扩展程序访问iframe中呈现的HTML?如果是,我应指定哪些权限和其他清单选项?感谢。

2 个答案:

答案 0 :(得分:39)

我已经解决了这个问题。必须在manifest.json的content_scripts部分中指定以下选项:"all_frames": true。没有它,脚本仅应用于顶部框架。

//有时候只需要小心翼翼地进行RTFM。

答案 1 :(得分:8)

对于没有@src的iframe,偶数"all_frames": true似乎没有帮助。错误http://code.google.com/p/chromium/issues/detail?id=20773中讨论了这一点,其中还介绍了一些解决方法,包括在源页面中获取iframe元素的contentDocument,例如: $('a', $($("#canvas_frame")[0].contentDocument))

这个错误并不是你遇到的问题(你想在iframe中加载你的内容脚本,而不是在iframe和外框之间进行交互)但我认为大多数有问题的人会有另外一个。