17

将javascript注入文档页面的问题很多。我真正想做的是在文档内的iframe中注入javascript。使用Chrome扩展在iframe中注入javascript

需要说明的是,iframe与文档不属于同一个域。我已经通过控制台(不通过扩展名)尝试过它,但无法这样做。

我很好奇,如果这是可以使用铬扩展完成的事情?

回答

38

是的,你可以使用manifest.json中content_scripts属性是这样的:

"content_scripts": [{ 
    "matches": ["http://*/*", "https://*/*"], 
    "js": ["content_frame.js"], 
    "all_frames": true 
}], 

通过设置all_framestrue你会注入/包括content_frame.js javascript文件到上面的文件和I帧所有。如果你只需要JavaScript的iframe中注入而不是顶部文档中,你可以检查你的content_frame.js文件中是这样的:

if (parent === top) { 
    // here you can put your code that will run only inside iframe 
} 
+1

我只是一个初学者,我编写只有一个延伸,直到日期。你有任何完整的例子或我可以通过的任何链接。 –

+0

@coding_idiot我将我的答案扩展了一些,并添加了关于如何使用content_scripts的文档的链接。我希望现在更清楚? –

+1

您可以使用'include_globs'和'exclude_globs'来定位特定的框架,而不是在脚本中执行if语句:https://developer.chrome.com/extensions/content_scripts#include_globs – jkupczak