Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome extension Chrome扩展在页面操作中显示弹出窗口_Google Chrome Extension - Fatal编程技术网

Google chrome extension Chrome扩展在页面操作中显示弹出窗口

Google chrome extension Chrome扩展在页面操作中显示弹出窗口,google-chrome-extension,Google Chrome Extension,我对chrome浏览器扩展和页面操作有点困惑。 我的目标是有一个特定页面的弹出窗口 manifest.json: { “名称”:“基本扩展”, “版本”:“1.0”, “说明”:“扩展”, “权限”:[ “活动标签”, “声明内容”, “存储”, “标签”, “*://www.google.com/*”], “背景”:{ “脚本”:[“background.js”], “持续”:假 }, “页面操作”:{ “默认弹出窗口”:“popup.html”, “默认_图标”:{ “16”:“imag

我对chrome浏览器扩展和页面操作有点困惑。 我的目标是有一个特定页面的弹出窗口

manifest.json

{
“名称”:“基本扩展”,
“版本”:“1.0”,
“说明”:“扩展”,
“权限”:[
“活动标签”,
“声明内容”,
“存储”,
“标签”,
“*://www.google.com/*”],
“背景”:{
“脚本”:[“background.js”],
“持续”:假
},  
“页面操作”:{
“默认弹出窗口”:“popup.html”,
“默认_图标”:{
“16”:“images/icon16.png”,
“32”:“images/icon32.png”,
“48”:“images/icon64.png”,
“128”:“images/icon128.png”
}
},
“图标”:{
“16”:“images/icon16.png”,
“32”:“images/icon32.png”,
“48”:“images/icon64.png”,
“128”:“images/icon128.png”
},
“清单版本”:2
}
background.js

“严格使用”;
chrome.runtime.onInstalled.addListener(函数(){
chrome.declarativeContent.onPageChanged.removeRules(未定义,函数(){
chrome.declarativeContent.onPageChanged.addRules([{
条件:[新建chrome.declarativeContent.PageStateMatcher]({
pageUrl:{hostEquals:'https://www.google.com/*'},
})],
操作:[新建chrome.declarativeContent.ShowPageAction()]
}]);
});
}); 
popup.html


身体{
背景颜色:绿色;
}
测试扩展
试验
问题是:

  • 如果我在清单中使用
    browser\u action
    ,它将按预期工作。单击扩展图标后将显示弹出窗口

  • 但当我将其更改为
    page\u action
    时,弹出窗口不再显示。(鼠标左键单击将打开与鼠标右键单击相同的菜单,而不是显示我的弹出窗口。)



我是否需要手动触发弹出窗口?我是否缺少清单中的某些权限?如果您能提供任何帮助或提示,我将不胜感激。

您对
hostEquals
的条件定义不正确。它应该分为
hostEqual
scheme
两部分,如下所示:

pageUrl: { hostEquals: 'www.google.com', schemes: ['https'] }
这样做之后,它应该按照定义工作。请查看中的规则部分