Chrome扩展程序:使用特定规则重定向当前网址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chrome扩展程序:使用特定规则重定向当前网址相关的知识,希望对你有一定的参考价值。

我是一名研究人员,我想通过我的大学获取学术论文。我发现可以修改URL来实现此目的。规则将替换“。”与“-”,然后将“ .proxy.findit.dtu.dk”添加到域中。

例如:发件人:https://www.sciencedirect.com/science/article/pii/S0925838811021414到:https://www-sciencedirect-com.proxy.findit.dtu.dk/science/article/pii/S0925838811021414

this post的启发,我将代码修改为:第一个文件:manifest.json

{
  "manifest_version": 2,

  "name": "Redirect via DTU",
  "description": "This extension automatically replace '.' with '-' and adds the '.findit.dtu.dk' to the browser's address, allowing you to visit the databases bought by the library quickly",
  "version": "1.0",

  "browser_action": {
    "default_icon": "DTU.png",
    "default_title": "Redirect via DTU!"
  },
  
  "background":{
    "scripts":["background.js"]
  },

  "permissions": [
    "activeTab",
    "tabs"
  ]
}

第二个文件:popup.js

// Change the url to library when on click
var l=location;
l.href=l.href.replace(/./g, "-")
l.href=l.origin+l.href.replace(l.origin, '.proxy.findit.dtu.dk');

第三文件:background.js

//Wait for click

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(null, {
  	"file": "popup.js"
  }, function(){ 
  	"popup.js";
  	console.log("Script Executed ...");
  });
})

我包含的最后一个文件是一个数字:DTU.png。但是,它不起作用。 popup.js存在一些问题。 我无法替换“。”用“-”并同时将“ .proxy.findit.dtu.dk”添加到域中。仅添加有效。运行示例后,我得到的是:https://www.sciencedirect.com.proxy.findit.dtu.dk/science/article/abs/pii/S0925838811021414

我对javascript完全陌生。有什么建议可以解决这个问题吗?干杯!

答案

分配给location.href是棘手的,因为它会导致导航,因此您应该在一个操作中进行:

location.href = 'https://' +
  location.hostname.replace(/./g, '-') +
  '.proxy.findit.dtu.dk' +
  location.href.slice(location.origin.length);

以上是关于Chrome扩展程序:使用特定规则重定向当前网址的主要内容,如果未能解决你的问题,请参考以下文章

完全重定向所有网址,只需更改域名

markdown Chrome中的dev和foo域扩展程序强制重定向到HTTPS备注

如何在 JSF 1.x 中对页面加载进行重定向

如何更改我的网址的特定部分以更改语言编辑.htaccess

Htaccess将特定网址重定向到另一个网址的路径

是否可以从URL创建一个重定向规则,斜杠为没有它的一个?