如何重定向Google Chrome扩展程序中的某些页面?

默丘克·霍尔(Merchuk Hul)

chrome.webRequest.onBeforeRequest后台脚本中使用它来侦听用户提出的所有请求。我的扩展名现在只是一个清单和这个bg脚本。

然后,我检查网址是否与正则表达式匹配:

chrome.webRequest.onBeforeRequest.addListener(
     checkRedirect, {urls: ["<all_urls>"]}, ["blocking"]
);

function checkRedirect(details) {   
    var location = getLocation(details.url);

    if(/some_regex/.test(details.url)) {
        var redirect_url = 'http://some_redirect.com' + location.pathname;
        chrome.tabs.update({url: redirect_url});
    }

    return {cancel: false}; 
}

function getLocation(href) {
    var l = document.createElement('a');
    l.href = href;
    return l;
};

因此,如果用户进入页面或单击指向该页面的链接,我想将其重定向。上面的代码几乎可以正常工作;问题是当页面请求例如CSS时,这些CSS最终出现在用户屏幕上。


所以我想要的是只过滤对页面/点击的请求。

罗伯·W

通过设置types将事件通知限制为顶级框架['main_frame']['main_frame', 'sub_frame']如果您还希望包括框架,则使用此属性)。

尽管先前的建议可以解决您的问题,但我建议更进一步,并摆脱它chrome.tabs.update用于redirectUrl将先前的请求替换为重定向到所需URL的地址。

如果您的URL模式匹配方法非常简单(可表示为匹配模式),则将过滤器合并到webRequest API过滤器“ urls”键中。这将减少扩展程序对浏览器性能的影响。

chrome.webRequest.onBeforeRequest.addListener(function(details) {
    var location = getLocation(details.url); // getLocation defined in question
    var redirect_url = 'http://some_redirect.com' + location.pathname;
    return { redirectUrl: redirect_url };
}, {
    types: ['main_frame', 'sub_frame'],
    urls: ['*://*/*some_pattern*']
}, ['blocking']);

注意:<all_urls>如果您不准备处理非HTTP请求,请不要使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Chrome扩展程序中重定向到HTML页面

来自分类Dev

Google Chrome扩展程序重定向网址

来自分类Dev

如何在重定向页面中包含Google Analytics(分析)?

来自分类Dev

Google Chrome浏览器扩展程序重定向其他页面

来自分类Dev

Chrome扩展程序可将标签重定向到我的页面

来自分类Dev

如何重定向页面

来自分类Dev

使用Google chrome扩展程序重定向到url

来自分类Dev

方法调用后如何重定向Google页面

来自分类Dev

如何从 Google Script 重定向到特定页面

来自分类Dev

如何从Chrome扩展程序中打开的窗口获取背景页面?

来自分类Dev

Chrome扩展程序如何响应按钮在页面中的单击?

来自分类Dev

如何在Chrome扩展程序中为OAuth2提供重定向URL?

来自分类Dev

如何在Chrome扩展程序中重定向当前标签页的网址?

来自分类Dev

如何从视图重定向页面

来自分类Dev

从网站下载chrome扩展程序,而无需重定向到Chrome Webstore页面

来自分类Dev

如何重定向到Django中的页面

来自分类Dev

Chrome扩展程序:单击按钮后如何将html表单数据发送到php页面,该页面重定向到该php页面

来自分类Dev

如何从我的kern.log中重定向Google Chrome日志

来自分类Dev

如何通过扩展程序检测Google Chrome中页面标题的更改?

来自分类Dev

Chrome扩展程序通过POST请求重定向到本地页面

来自分类Dev

重定向页面上的Google实验

来自分类Dev

重定向页面上的Google实验

来自分类Dev

是否有Chrome扩展程序可从Google搜索结果中删除某些域/网站?

来自分类Dev

Google Chrome不活动重定向

来自分类Dev

如何使用PHP在重定向页面上使用Google Analytics(分析)进行跟踪?

来自分类Dev

chromeapp.org扩展名重定向如何在Google Chrome浏览器上工作?

来自分类Dev

Google Appengine。如何在处理程序构造函数内部重定向

来自分类Dev

在Google Colab中重定向或查看stderr

来自分类Dev

Chrome在某些页面上自动重定向

Related 相关文章

  1. 1

    如何在Chrome扩展程序中重定向到HTML页面

  2. 2

    Google Chrome扩展程序重定向网址

  3. 3

    如何在重定向页面中包含Google Analytics(分析)?

  4. 4

    Google Chrome浏览器扩展程序重定向其他页面

  5. 5

    Chrome扩展程序可将标签重定向到我的页面

  6. 6

    如何重定向页面

  7. 7

    使用Google chrome扩展程序重定向到url

  8. 8

    方法调用后如何重定向Google页面

  9. 9

    如何从 Google Script 重定向到特定页面

  10. 10

    如何从Chrome扩展程序中打开的窗口获取背景页面?

  11. 11

    Chrome扩展程序如何响应按钮在页面中的单击?

  12. 12

    如何在Chrome扩展程序中为OAuth2提供重定向URL?

  13. 13

    如何在Chrome扩展程序中重定向当前标签页的网址?

  14. 14

    如何从视图重定向页面

  15. 15

    从网站下载chrome扩展程序,而无需重定向到Chrome Webstore页面

  16. 16

    如何重定向到Django中的页面

  17. 17

    Chrome扩展程序:单击按钮后如何将html表单数据发送到php页面,该页面重定向到该php页面

  18. 18

    如何从我的kern.log中重定向Google Chrome日志

  19. 19

    如何通过扩展程序检测Google Chrome中页面标题的更改?

  20. 20

    Chrome扩展程序通过POST请求重定向到本地页面

  21. 21

    重定向页面上的Google实验

  22. 22

    重定向页面上的Google实验

  23. 23

    是否有Chrome扩展程序可从Google搜索结果中删除某些域/网站?

  24. 24

    Google Chrome不活动重定向

  25. 25

    如何使用PHP在重定向页面上使用Google Analytics(分析)进行跟踪?

  26. 26

    chromeapp.org扩展名重定向如何在Google Chrome浏览器上工作?

  27. 27

    Google Appengine。如何在处理程序构造函数内部重定向

  28. 28

    在Google Colab中重定向或查看stderr

  29. 29

    Chrome在某些页面上自动重定向

热门标签

归档