iframe内部扩展弹出窗口或背景脚本的内容脚本
我正在尝试与chrome扩展弹出窗口中的iframe交互。我知道content.js可以使用manifest.json注入到所有的框架中,但是它在网页中使用框架,而不是在扩展的弹出窗口中 这可行吗?我尝试了很多方法,但还没有找到解决办法 我的舱单:iframe内部扩展弹出窗口或背景脚本的内容脚本,iframe,google-chrome-extension,Iframe,Google Chrome Extension,我正在尝试与chrome扩展弹出窗口中的iframe交互。我知道content.js可以使用manifest.json注入到所有的框架中,但是它在网页中使用框架,而不是在扩展的弹出窗口中 这可行吗?我尝试了很多方法,但还没有找到解决办法 我的舱单: { "name" :"test", "version": "1.0", "manifest_version": 2, "description" :"Scraping Facebook", "permissions": [ "cookies",
{
"name" :"test",
"version": "1.0",
"manifest_version": 2,
"description" :"Scraping Facebook",
"permissions": [
"cookies",
"background",
"tabs",
"http://*/*",
"https://*/*",
"storage",
"unlimitedStorage"
],
"icons": { "128": "images/pint.png" },
"content_scripts": [
{
"matches": [
"http://*/*",
"https://*/*"
],
"js": ["jquery-3.1.0.min.js","content.js"],
"run_at":"document_end"
}
],
"web_accessible_resources": [
"http://*/*",
"https://*/*",
"styles/*",
"fonts/*"
],
"background": {
"scripts": ["background.js"]
},
"browser_action" :
{
"default_popup": "popup.html",
"default_title": "test"
}
}
在内容脚本声明中使用“all_frames”:true
,将其注入iframe:
“内容脚本”:[{
“匹配项”:[“http://example.com/*" ],
“js”:[“content.js”],
“所有帧”:正确
}],
要将此iframe与普通选项卡区分开来,您可以在创建iframe时向URL添加一个伪参数,例如http://example.com/?foo
这样您就可以在manifest.json中匹配它,就像”http://example.com/*例如,foo*“
然后您可以使用:内容脚本启动它,扩展脚本注册一个侦听器
- 简单的一次性发送消息:
content.js:
popup.js(或background.js等):chrome.runtime.sendMessage('test',response=>{ 控制台日志(响应); });
chrome.runtime.onMessage.addListener((msg,sender,sendResponse)=>{ log('popup-get',msg',from',sender); sendResponse(“response”); });
- 长寿命港口:
content.js:
popup.js(或background.js等):let port=chrome.runtime.connect({name:'test'}); port.onMessage.addListener((消息,端口)=>{ 控制台日志(msg); }); port.postMessage('from-iframe');
让iframePort;//以防以后在另一个函数中更改其行为 chrome.runtime.onConnect.addListener(端口=>{ iframePort=端口; port.onMessage.addListener((消息,端口)=>{ 控制台日志(msg); }); port.postMessage('from-popup'); });
当然,您也可以使用DOM操作以编程方式添加iframe。您好,我添加了my manifest.json您是否尝试将内容脚本插入弹出窗口中的iframe中以用于您自己的扩展或其他扩展?您的
浏览器\u操作
中存在popup.html,这意味着它是您自己的,但未明确说明。请说明主题:包括问题的完整副本。通常,包括manifest.json、一些背景、内容和弹出脚本以及HTML。寻求调试帮助的问题(“为什么此代码不工作?”)必须包括:►想要的行为,►特定的问题或错误,以及►在问题本身中复制它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:“如何创建”,以及。这是我自己的扩展名的弹出窗口,其中的iframe来自不同的域。我将用文件和更多详细信息编辑此问题谢谢您的详细回答