Javascript 努力在Chrome扩展中获取DOM数据
我在这里找到了几个关于堆栈溢出的非常好的投票问题,尽管我实际上找不到有效的解决方案 我一直在努力寻找答案:, 但是我仍然得到一个完全空白的控制台(尽管重新加载了扩展) manifest.json:Javascript 努力在Chrome扩展中获取DOM数据,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我在这里找到了几个关于堆栈溢出的非常好的投票问题,尽管我实际上找不到有效的解决方案 我一直在努力寻找答案:, 但是我仍然得到一个完全空白的控制台(尽管重新加载了扩展) manifest.json: { “清单版本”:2, “名称”:“测试扩展”, “版本”:“0.0”, “背景”:{ “坚持”:假, “脚本”:[“background.js”] }, “内容脚本”:[{ “匹配项”:[“https://*/*”], “js”:[“content.js”] }], “浏览器操作”:{ “默认标题”
{
“清单版本”:2,
“名称”:“测试扩展”,
“版本”:“0.0”,
“背景”:{
“坚持”:假,
“脚本”:[“background.js”]
},
“内容脚本”:[{
“匹配项”:[“https://*/*”],
“js”:[“content.js”]
}],
“浏览器操作”:{
“默认标题”:“测试扩展”,
“默认图标”:“icon.png”,
“默认弹出窗口”:“popup.html”
},
“权限”:[“活动选项卡”]
}
background.js:
//用作回调的函数
函数logDOM(domContent){
log('我收到了以下DOM内容:\n'+domContent);
}
//单击浏览器操作按钮时。。。
chrome.browserAction.onClicked.addListener(函数(选项卡){
console.log(tab.url);
sendMessage(tab.id,{text:'report_back'},logDOM);
});
content.js:
//侦听消息
chrome.runtime.onMessage.addListener(函数(msg、sender、sendResponse){
//如果收到的消息具有预期的格式。。。
如果(msg.text==='report\u back'){
//调用指定的回调函数,传递
//将网页的DOM内容作为参数
sendResponse(document.all[0].outerHTML);
}
});
我做错什么了吗?从
浏览器操作中删除默认弹出窗口:
问题是您正在manifest.json中为浏览器操作
定义一个默认弹出窗口
。将浏览器\u操作更改为:
"browser_action": {
"default_title": "Test Extension",
"default_icon": "icon.png"
},
如果您定义了一个默认\u弹出窗口
,则Chrome会尝试显示弹出窗口,而不会向您的后台脚本发送单击事件。您应该看到一个弹出窗口,显示未找到您的文件
仅注入https
方案页面:
假设您只将内容脚本注入https://
页面,请确保您正在使用https
方案的页面上进行测试
通过将内容脚本注入所有URL,您可能会发现更容易进行测试。您可以通过将manifest.json中的content\u脚本
键更改为:
从浏览器中删除默认弹出窗口
操作
:
问题是您正在manifest.json中为浏览器操作
定义一个默认弹出窗口
。将浏览器\u操作更改为:
"browser_action": {
"default_title": "Test Extension",
"default_icon": "icon.png"
},
如果您定义了一个默认\u弹出窗口
,则Chrome会尝试显示弹出窗口,而不会向您的后台脚本发送单击事件。您应该看到一个弹出窗口,显示未找到您的文件
仅注入https
方案页面:
假设您只将内容脚本注入https://
页面,请确保您正在使用https
方案的页面上进行测试
通过将内容脚本注入所有URL,您可能会发现更容易进行测试。您可以通过将manifest.json中的content\u脚本
键更改为:
您是否在后台页面控制台中chrome://extensions?Are 您可以在后台页控制台中从chrome://extensions?thanks 这么多!我想问题是我没有在我的背景页面上查看控制台。完全没想到去看那里哦!谢谢你在其他方面的解释。非常感谢!我想问题是我没有在我的背景页面上查看控制台。完全没想到去看那里哦!谢谢你在其他方面的解释。
{
"manifest_version": 2,
"name": "Test Extension",
"version": "0.0",
"background": {
"persistent": false,
"scripts": ["background.js"]
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["content.js"]
}],
"browser_action": {
"default_title": "Test Extension",
"default_icon": "icon.png"
},
"permissions": ["activeTab"]
}