我在stackoverflow上遵循了一些指南,甚至完全从这个page复制代码。当我按下页面上的按钮时,它工作正常;但是,当我将它添加到我的项目时,窗口不会弹出。是否有像我需要配置的一些设置才能弹出?
答案 0 :(得分:1)
要在Chrome扩展程序中打开新的window,您必须使用Chrome扩展程序window.create API创建一个窗口。现在要使用此API,您必须在manifest.json
中添加选项卡权限 {
"name": "My extension",
...
"permissions": ["tabs"],
...
}
您的弹出式脚本或内容脚本仍然没有直接使用此API的权限,您必须先告诉后台脚本打开一个新窗口。
在弹出式脚本中
在按钮单击处理程序中:
chrome.runtime.sendMessage({message: "openWindow"});
现在在你的后台脚本中添加一个监听器来监听事件,如果它会收到消息“openWindow”,它会创建一个这样的新窗口:
在后台脚本中
chrome.runtime.onMessage.addListener(function (req, sender, res) {
if(req.message == "openWindow"){
var path = "https://www.stackoverflow.com"; /*path/to/page or web URL*/
openCustomWindow(path);
}
});
function openCustomWindow(uri){
var winObj = {
url: uri,
width: 600,
height: 600,
left: Math.round(screen.width / 2 - 400 / 2),
top: Math.round(screen.height / 2 - 400 / 2),
focused: true,
type: "normal",
state: "normal"
};
chrome.windows.create(winObj);
}
您可以在documentation
中查看窗口属性