Web扩展-阻止请求时显示类似chrome的错误页面

问题描述

我的网络扩展中有以下代码用于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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...