如何以编程方式将内容脚本添加到 iframe 文档
How to add content script to iframe document programmatically
我正在编写一些诊断工具并尝试为其创建chrome扩展程序。我有一个带有iframe的页面。iframe 包含铺设在diffrent domain
上的站点。
我需要的是这两个站点之间的通信。我发现我可以简单地向每个文档(iframe 文档和我的顶部窗口文档)添加一个content script
,并通过background script
和消息流设置它们之间的通信。
问题是我现在不知道iframe中文档的地址是什么,用户可以将多个不同的页面放入iframe。因此,我无法使用manifest.json
文件添加content script
,因为我不知道该将什么放入matches
属性中。
我尝试使用chrome.tabs.executeScript
allFrames
标志设置为 true 的方法。当 iframe 文档与顶部窗口文档位于同一域中时,它工作正常,但是当它位于不同的域中时,它不会向框架文档添加content script
。
问题很奇怪,因为如果我在设计时知道 iframe url,那么我可以像从清单文件一样添加这些脚本......
在这种情况下,如何将内容脚本添加到 iframe 文档?
我还会告诉您,我有权访问manifest.json
文件中的每一页。它像这样:"permissions": ["tabs", "http://*/", "https://*/"]
.另外一个障碍是我无法摄取 iframe 文档内容,它是第三方代码。
有什么想法吗?感谢您的任何帮助。
在Rob W
评论之后,问题在于时机。我试图在加载之前将脚本注入 iframe。我已经在 iframe 上使用onload
事件来确定应该调用 executeScript
方法的时刻。
现在一切正常。谢谢罗布。
- ScriptManager.RegisterStartupScript保持多次添加脚本块
- 如何在 JavaScript 中的 HTML head 标记中动态添加脚本值
- 添加脚本包括一个顶点:组件
- 如何在正文元素之前添加脚本
- 如何使用 javascript 添加脚本代码
- 如何使用javascript在子窗口中添加脚本文件
- 在 CakePHP 中,现在 View->addScript() 已被弃用,我如何向我的布局添加脚本*一次*
- 在页面加载 c# 上添加脚本
- 如何在 iframe for jQuery 中添加脚本元素
- 如何在 PHPBB3 Teamplate 中动态添加 <脚本> 标签
- 在页面 JavaScript 中动态添加脚本
- 如何从HTML字符串动态添加脚本到网页
- Javascript性能-使用$.getScript()添加脚本
- 动态添加脚本时未定义$/jQuery
- Google+Business帐户,添加脚本以自动将同事添加到新用户的同事圈中
- 添加<脚本>元素时,CSS 翻译过渡停止工作
- 不能在header中添加脚本
- 在window.onload后添加脚本src
- 添加脚本路径到xslt文件
- 如何在html文件中添加脚本标签,在jquery.js被包含之后,但在结束正文标签之前只使用javascript