gpt4 book ai didi

html - 从 chrome 的扩展内容脚本访问 iframe 内容

转载 作者:数据小太阳 更新时间:2023-10-29 05:38:59 26 4
gpt4 key购买 nike

我正在做一个插件来对界面进行一些转换。我不断收到 unsafe javascript attempt to access frame with url.... Domains, protocols and ports must match(典型的跨站点问题)

但作为一个扩展,它应该可以访问 iframe 的内容 http://code.google.com/chrome/extensions/content_scripts.html ...

有谁知道如何访问它的内容以便可以捕获它们?

最佳答案

通常没有直接的方法来访问不同来源的 window 对象。如果您想在不同框架中的内容脚本之间安全地通信,您必须向后台页面发送消息,后台页面又将消息发送回选项卡。

这是一个例子:

部分manifest.json:

"background": {"scripts":["bg.js"]},
"content_scripts": [
{"js": ["main.js"], "matches": ["<all_urls>"]},
{"js": ["sub.js"], "matches": ["<all_urls>"], "all_frames":true}
]

main.js:

var isTop = true;
chrome.runtime.onMessage.addListener(function(details) {
alert('Message from frame: ' + details.data);
});

sub.js:

if (!window.isTop) { // true  or  undefined
// do something...
var data = 'test';
// Send message to top frame, for example:
chrome.runtime.sendMessage({sendBack:true, data:data});
}

后台脚本'bg.js':

chrome.runtime.onMessage.addListener(function(message, sender) {
if (message.sendBack) {
chrome.tabs.sendMessage(sender.tab.id, message.data);
}
});

另一种方法是在 bg.js 中使用 chrome.tabs.executeScript 来触发主要内容脚本中的函数。

相关文档

关于html - 从 chrome 的扩展内容脚本访问 iframe 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com