所以我写了一个重定向脚本,不幸的是它重定向了每一帧,我是java脚本的新手,想要想出这个简单的扩展。
的manifest.json
{
"name": "Flannel is #Winning ",
"version": "0.2",
"description": "Checks URL and redirects as required.",
"background": {
"page":"bg.html"
},
"manifest_version": 2,
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["content.js", "bg.js"]
}
],
"permissions": ["tabs","http://*/*", "https://*/*"]
}
bg.html
<html>
<script src="redirect.js"></script>
</html>
content.js
chrome.extension.sendRequest({redirect: newurl});
redirect.js
var url;
var newurl = "http://google.com/";
var newurl1 = "google.com/";
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
"use strict";
url = tabs[0].url;
});
function myFunction(url) {
"use strict";
if (url !== newurl || url !== newurl1) {
chrome.extension.onRequest.addListener(function (request, sender) {
chrome.tabs.update(sender.tab.id, {url: request.redirect});
});
}
}
chrome.tabs.getSelected(null, function (tab) {
"use strict";
myFunction(tab.url);
});
不幸的是它刷新了每一帧,我试图创建一个函数,检查当前的URL是否是那个,也许我们只是我对JavaScript的经验不足但我想通过编写我的第一个chrome扩展来挑战自己而且我'我很难过。任何指针或指向任何类型的文档,以指出我在写入方向将不胜感激。
更新
我已经尝试了这个以及它的其他变体,它直接完全没有重定向使用在content.js脚本中注入的代码
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
"use strict";
url = tabs[0].url;
myFunction(url);
});
function myFunction(url){
if(url !== newurl){
chrome.extension.sendRequest({redirect: newurl});
}
}
答案 0 :(得分:1)
我在content.js
中做到了这一点if (window.location.href !== newurl) {
window.location.href = newurl;
}
感谢大家的帮助!