Javascript 在Chrome扩展内的iframe内执行父窗口JS

Javascript 在Chrome扩展内的iframe内执行父窗口JS,javascript,iframe,google-chrome-extension,Javascript,Iframe,Google Chrome Extension,我正在创建一个chrome扩展来赞美我的webapp。长话短说,它在承载我之前创建的站点的内容脚本中创建了一个iframe。iframe使用chrome扩展本地加载 它之所以是iframe,是因为与使用浏览器操作弹出窗口不同,我试图让它看起来像gmail中的面板/模式。下面是一个它看起来像什么的例子 现在谈到实际问题,我正在尝试在iframe的父窗口上运行的iframe内执行一个操作。例如window.parent.someMethod()。但是,每次尝试时,我都会出现以下错误: Uncaug

我正在创建一个chrome扩展来赞美我的webapp。长话短说,它在承载我之前创建的站点的内容脚本中创建了一个iframe。iframe使用chrome扩展本地加载

它之所以是iframe,是因为与使用浏览器操作弹出窗口不同,我试图让它看起来像gmail中的面板/模式。下面是一个它看起来像什么的例子

现在谈到实际问题,我正在尝试在iframe的父窗口上运行的iframe内执行一个操作。例如
window.parent.someMethod()
。但是,每次尝试时,我都会出现以下错误:

Uncaught DOMException: Blocked a frame with origin 
"chrome-extension://dcihnokebmondckijoccdhbhcpkonfid" from accessing a
cross-origin frame.(anonymous function)
我知道这与chrome扩展中的安全性有关,为了缓解这个问题,我将清单中的
content\u security\u policy
设置为
script src'self''safe eval';对象src“self”。这并没有解决我的问题


总而言之:我正在chrome扩展api内部寻找一种解决方案,以允许我的iframe访问它的父窗口。

据我所知,你不能


您应该在选项卡中给内容脚本发送消息,以便为您做些事情。

嘿,谢谢您的建议。我已经实现了
chrome.runtime.sendMessage({问候语:“你好”})在我的iframe和
chrome.runtime.onMessage.addListener(函数(请求、发送者、发送者响应){console.log(发送者.tab?),来自内容脚本:“+sender.tab.url:”来自扩展”);}在我的分机中。似乎仍然没有任何想法?谢谢,我现在会调查。我是否应该使用
chrome.tabs.sendMessage()
也许最好单独问一个问题。不过我建议你自己去修。不,这是真的,我陷入了“我不想看医生”的心态。这很糟糕。谢谢你的帮助,你给我指明了正确的方向。