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

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

所以我写了一个重定向脚本,不幸的是它重定向了每一帧,我是java脚本的新手,想弄清楚这个简单的扩展。

ma​​nifest.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 是否是那个 URL,也许这只是我在 JavaScript 方面的经验不足,但我想通过编写我的第一个 chrome 扩展来挑战自己,我'我难住了。任何指针或指向任何类型的文档以指导我编写方向将不胜感激。

更新

我也尝试过这个以及它的其他变体,在 content.js 脚本中注入(inject)此代码时它根本没有重定向

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});
}

}

最佳答案

我通过在 content.js 中这样做来解决这个问题

if (window.location.href !== newurl) {
    window.location.href = newurl;
}

感谢大家的帮助!

关于javascript - Chrome 扩展程序会重定向每一帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551616/

相关文章:

google-chrome - 用于启动 Chrome 等的 Powershell 脚本

iis - 使用 Web.Config 将目录重定向到子域

python - 输出重定向到多个文件

javascript - Firestore 执行 get 命令 super 慢

javascript - 解锁 Chrome 扩展中的高级功能

javascript - 不同网站上的不同用户代理

javascript - 我如何调整此代码以在 Google 协作平台上运行?

Javascript对象删除特定键

javascript - 如何实现Excel的ACCRINT

javascript - Chrome 扩展 : writing content into a dynamic iframe created in a sandboxed environment