【发布时间】:2019-03-20 02:34:14
【问题描述】:
站点 A 是一个网站,其 <iframe> 包含站点 B。它在带有扩展程序的 chrome 浏览器上运行。
我可以控制扩展。我想做的是让用户控制编辑站点 B 的部分内容。
当用户按下扩展程序上的按钮时,将调用以下内容。目的是加载 jQuery,以便我可以使用它,定位页面上的 iframe,进入 iframe,然后更改其主体颜色。
chrome.tabs.executeScript(null, {file: 'assets/jquery.min.js'}, function () {
chrome.tabs.executeScript({
code: "jQuery('iframe').contents().find('body').css('backgroundColor', 'red');"
});
});
站点 A 和站点 B 位于不同的域中,因此使用相同的来源策略。还值得注意的是,站点 B 没有授予站点 A 的跨源访问权限。我也不是站点 A 或站点的所有者B 所以不能修改他们的跨域策略。
我希望从扩展程序运行时,我得到用户的更多同意,以便能够绕过相同的来源策略并执行上述操作。
【问题讨论】:
-
如果您想将代码注入到站点 B 框架中,这是完全可行的。这是你想做的吗?
-
iframe 的来源是否与站点 B 相同?
-
@extempl 这些网站是两个不同的来源。
标签: javascript google-chrome-extension same-origin-policy