我是一名研究人员,我想通过我的大学获取学术论文。我发现可以修改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);