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

问题描述 投票:0回答:1

我是一名研究人员,我想通过我的大学获取学术论文。我发现可以修改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完全陌生。有什么建议可以解决这个问题吗?干杯!

javascript google-chrome url redirect google-chrome-extension
1个回答
2
投票

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

location.href = 'https://' +
  location.hostname.replace(/\./g, '-') +
  '.proxy.findit.dtu.dk' +
  location.href.slice(location.origin.length);
© www.soinside.com 2019 - 2024. All rights reserved.