Chrome扩展程序会重定向每一帧

时间:2015-07-21 23:55:46

标签: javascript google-chrome redirect google-chrome-extension

所以我写了一个重定向脚本,不幸的是它重定向了每一帧,我是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});
}

}

1 个答案:

答案 0 :(得分:1)

我在content.js

中做到了这一点
if (window.location.href !== newurl) {
    window.location.href = newurl;
}

感谢大家的帮助!