Javascript 谷歌浏览器扩展webrequest截获
我正在尝试创建一个chrome扩展,将google scholar尾注文件转换为引文格式Javascript 谷歌浏览器扩展webrequest截获,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在尝试创建一个chrome扩展,将google scholar尾注文件转换为引文格式 chrome.webRequest.onBeforeRequest.addListener(function(reqObj){ if (reqObj.tabId != -1){ var xhr = new XMLHttpRequest(); xhr.open("GET", reqObj.url, true); xhr.onreadystatechang
chrome.webRequest.onBeforeRequest.addListener(function(reqObj){
if (reqObj.tabId != -1){
var xhr = new XMLHttpRequest();
xhr.open("GET", reqObj.url, true);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
parseEndnote(xhr.responseText); //Parse the endnote and create the citation
}
}
xhr.send();
return {redirectUrl : "data:text/plain;charset=utf-8,Citation%20Created"}
}
},
{urls : ["*://*/scholar.enw*"]},
["blocking"]
);
问题:
我必须重定向到一个数据url。我希望取消单击操作
返回{cancel:true}
将导致用户重定向到“此页面被扩展通用chrome页面阻止”
关于如何解决这个问题,有什么想法吗?遵循链接的过程如下所示:
侦听器运行onBeforeRequest
- 其他
侦听器运行等webRequest
webRequest
代码直到步骤3才运行。您的webRequest
代码正在运行这一事实本身就意味着某些链接激活事件(单击
或按键
)已经成功
您需要在页面中插入内容脚本,以便将事件取消侦听器直接添加到要停止的链接中(例如,使用
返回false
或预防默认值
)。任何原因都不能插入内容脚本和返回false
(或e.预防默认值()
)在事件侦听器绑定到要停止的相关链接时?@apsillers可能就是这样。我只是希望一些没有消息传递的简单全局代码就足够了。不过我愿意接受进一步的建议。。。谢谢,这是我的第一个chrome扩展(一个爱好项目)。我现在已经注入了一个内容脚本