问题描述
我的网络扩展中有以下代码用于Firefox:
const checkRequest = (details) => {
console.log(details)
var blocked = ["https://www.example.com/","https://www.example2.com/"]
var isBlocked = blocked.includes(details.url)
console.log(isBlocked)
return { cancel: isBlocked }
}
const redirectAfterBlock = (details) => {
console.log(details)
if( details.error == "NS_ERROR_ABORT" ){
browser.tabs.update({ url: "https://www.google.com" })
}
}
browser.webRequest.onBeforeRequest.addListener(
checkRequest,{
urls: ["<all_urls>"],types: ["main_frame"]
},["blocking"])
browser.webRequest.onErrorOccurred.addListener(
redirectAfterBlock,{
urls: ["<all_urls>"]
})
我正在firefox开发人员版中对其进行测试,通过检查扩展名,我可以看到请求被拦截并且错误事件处理程序被触发。我注意到,如果我从代码中删除错误处理程序,如果访问了被阻止的url,则该页面将保持可见状态,并且不会显示任何错误页面(例如chrome),该页面将通知用户该请求已被阻止。这是Firefox的正常行为吗?如何防止在firefox中显示被阻止的网站以阻止其导航?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)