2014-02-24 212 views
1

我为你们提出了一个简单问题,我是新增Chrome扩展程序的人员,以及我对一个人的想法,我不确定是否可以使用扩展程序来做到这一点。我一直在浏览API,但没有找到可能有帮助的东西。因此,我的扩展的想法是,下载扩展程序的人将能够设置PIN码,他们将点击图标,它基本上会锁定浏览器,所以如果有人来到浏览器,他们只能访问该浏览器页面和它会导致什么,他们将无法使我们的网址栏或有权访问的标签,除非允许。然后,业主可以按热键,它会问他们那里销,并将解锁浏览器,如果需要。甚至可以将它放入演示模式,但无法在没有密码的情况下摆脱它?这是铬扩展可以做的事吗?还是我以这种错误的方式?我注意到Chrome中有一些选项://关于可以压缩url栏并在侧栏上制作标签的设置。任何帮助或指导这将是伟大的,谢谢!安全浏览器Chrome扩展程序

回答

2

您可以创建一个options page出扩展设置保存,然后创建一个名为例如DisableBrowser的选项。

在文件background.js,我们重点监测的onBeforeRequest事件,然后检查变量DisableBrowser的价值,如果它有真正价值,设置cancel参数onBeforeRequest事件的价值,等于真正cancel是等于true,请求被取消。

总之,只是cancel和设置等于和一切都被拒绝,即浏览器将不会打开网址,而扩展安装和启用。

更新:

下面的示例代码background.js文件的内容,展示如何让被允许在列表中只有某些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); 

帮助链接:

+0

精美T hanks,所以这样做可以基本上只允许它使用某个网页和/ ...后面的任何内容?然后阻止所有其他网站,除非添加到允许列表?现在我有了扩展,当它按下将使浏览器呈现模式,所以它会是全屏幕,以从网址栏的想法,但允许它,如果他们滚动到它,并看到网址栏,如果他们试着去某个地方,它不会让他们。 – SaSquadge

+0

是的,你可以阻止除允许列表中的URL以外的所有URL,有几种方法可以做到这一点,我认为它们很少,如果Urls Urls很少,那么就没有必要或者使用'array'来作为您可以在同一行上设置全部网址或localStorage列表,这变得更加简单。我会用一个示例代码更新问题的答案,以帮助您为添加的链接提供帮助,我相信你会得到你所需要的。 – D3F4ULT

+0

非常感谢这个,我需要多看一些API和示例来了解如何实现这些不同的事情。 – SaSquadge

相关问题