我的目标:当我点击链接时,停止所有请求和浏览器导航到该链接。基本上,如果我点击链接http://tabbit.org/about,则不会发生任何事情。没有请求,没有导航,没有。
我成功使用“onBeforeRequest”侦听器停止请求,但浏览器仍尝试导航到href的值,给我一个页面,上面写着“此网页被扩展程序阻止”
我尝试了什么
var navigate = true;
var url = "http://tabbit.org/about"
/*
* Will prevent headers from being sent. Browser will still
* try to navigate to the clicked link, though.
*/
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
navigate = false;
return {cancel: true} ;
},
// filters
{urls: [url]},
["blocking"]
);
// Somewhere in here is where I think navigation needs to be stopped.
chrome.webNavigation.onBeforeNavigate.addListener(
function(details) {
if (navigate == false) {
return false; // doesn't work.
//return {cancel: true}; // doesn't work.
};
},
{urls: [url]},
["blocking"]
)
我不想使用内容脚本,因为我也想为表单执行此操作。 所以基本上如果对某个URL,GET或POST发出http请求,我不想发生任何事情。
我浏览了SO(和网页)以获得解决方案,但没有骰子。
答案 0 :(得分:2)
在onBeforeRequest
的回调中尝试以下内容:
return {redirectUrl: 'http://google.com/gen_204'};