我为你们提出了一个简单的问题,我是新手制作Chrome扩展程序和我的想法,我不确定是否可以通过扩展程序执行此操作。我一直在寻找API,但没有遇到可能有用的东西。所以我对扩展的想法是,无论谁下载扩展程序,都可以设置一个密码,他们会点击图标,它基本上会锁定浏览器,所以如果其他人来到浏览器,他们只能访问那个页面和它会导致什么,他们将无法使用网址栏或访问标签,除非允许。然后主人可以按热键,它会询问他们的针脚,并将解锁浏览器,如果需要。或者甚至把它放在演示模式但没有密码却无法摆脱它?这是镀铬扩展可以做的事情还是我错误的方式?我注意到Chrome中有一些选项://关于您可以压缩网址栏并在侧栏上制作标签的设置。任何帮助或方向都会很棒,谢谢!
答案 0 :(得分:2)
您可以创建保存扩展程序设置的options page
,然后创建一个名为 DisableBrowser 的选项。
在文件background.js
中,我们监控onBeforeRequest
事件,然后检查变量 DisableBrowser 的值,如果它具有真值,则设置当cancel
等于 true 时,onBeforeRequest
参数cancel
事件的值等于 true ,请求被取消。
简而言之,只需cancel
并设置等于 true ,一切都被拒绝,即在安装和启用扩展程序时,浏览器不会打开网址。
<强>更新强>
下面的示例代码是background.js
文件的内容,显示了如何仅允许列表中允许的某些URL成功执行,因此所有其他URL将被拒绝并在打开时失败。
// callback
var onBeforeRequestCallback = function( details ) {
// List of Urls Allowed
// You can create an array or use localStorage through options.html page,
// to save the urls allowed,
// then check and if an allowed URL, the request is not canceled, or in other words, it is permitted,
// in case of failure it is canceled and is not permitted.
if ( details.url === 'https://www.google.com/' || details.url === 'http://www.bing.com/' ) {
return {
cancel : false
};
} else {
return {
cancel : true
};
}
};
// filter
var onBeforeRequestFilter = {
urls : [
"http://*/*",
"https://*/*"
]
};
// opt_extraInfoSpec
var onBeforeRequestInfo = [
"blocking",
"requestBody"
];
// Monitors onBeforeRequest event
chrome.webRequest.onBeforeRequest.addListener( onBeforeRequestCallback, onBeforeRequestFilter, onBeforeRequestInfo );
帮助链接: