javascript-在子域中某处阻止带有特定单词的URL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-在子域中某处阻止带有特定单词的URL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1281字,纯文字阅读大概需要2分钟。
内容图文
![javascript-在子域中某处阻止带有特定单词的URL](/upload/InfoBanner/zyjiaocheng/695/89fc96d9e69a4ca8a3dd728f578d0547.jpg)
我正在尝试制作一个Chrome扩展程序,以阻止该子域中具有特定单词的URL,但不能阻止该域中的其他URL.例如,假设我想在子域中用单词“ cola”阻止所有tumblr博客.
它应该能够阻止该页面:http://coca-cola.tumblr.com/.
我尝试使用以下URL匹配:urls:[“ *://*cola*.tumblr.com/*”],但它不起作用.我想不出任何其他可行的组合.有人可以指出我正确的方向吗?
这是我完整的background.js:
chrome.webRequest.onBeforeRequest.addListener(
function() {
return {cancel: true };
},
{
urls:["*://*cola*.tumblr.com/*"] // This is the part I'm messing up.
},
["blocking"]
);
解决方法:
您的代码失败,因为*://*cola*.tumblr.com/*不是有效的match pattern.通配符只能在URL的路径部分或主机名的开头使用.
如果要阻止其子域包含某些关键字的URL,则需要匹配整个域,并使用JavaScript检查子域是否包含亵渎单词.
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
var hostname = details.url.split('/', 3)[2];
return {
cancel: hostname.indexOf('cola') >= 0
};
},
{
urls:["*://*.tumblr.com/*"]
},
["blocking"]
);
或使用chrome.declarativeWebRequest API(为简便起见,省略了chrome.runtime.onInstalled事件):
chrome.declarativeWebRequest.onRequest.addRules({
id: 'some rule id',
conditions: [
new chrome.declarativeWebRequest.RequestMatcher({
url: {
hostContains: 'cola',
hostSuffix: '.tumblr.com'
}
})
],
actions: [
new chrome.declarativeWebRequest.CancelRequest()
]
});
内容总结
以上是互联网集市为您收集整理的javascript-在子域中某处阻止带有特定单词的URL全部内容,希望文章能够帮你解决javascript-在子域中某处阻止带有特定单词的URL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。