繁体   English   中英

在 Chrome 扩展中注入重定向 JS。 失败: :(

[英]Injecting Redirect JS in Chrome extension. Fail! :(

我正在尝试生成一个扩展来保留我的兄弟 facebook。 因此,我决定将所有 facebook 链接重定向到谷歌以供初学者使用。

我就是这样做的。

我的 manifest.json 文件:

{   

  "name": "FBRehab"    
  "version": "1.0",    
  "description": "Redirect FB",    
  "permissions": [    
   "tabs", "http://www.facebook.com/*", "https://www.facebook.com/*"    
],     
  "browser_action": {    
   "default_icon": "icon.png",    
"background_page": "background.html"    
      },
  ]
}

我的背景。html:

<html>
<head>
<script>
  chrome.tabs.executeScript(null, { file: "jquery.js" }, function() {
   chrome.tabs.executeScript(null, { file: "try.js" });
});
</script>
</head>

和 try.js

<head>
<script language="JavaScript">
var time = null
function move() {
window.location = 'www.google.com'
}
</script>
</head>

但是,它不会重定向。 我也尝试过使用内容脚本直接注入 try.js。

请帮我。

感谢您。

阿沙尔:)

请记住,后台页面在 Chrome 中只运行一次,它是一个长时间运行的脚本,只运行一次。

基本上,您的代码现在所做的是,一旦您的浏览器加载,它将注入 jquery 并尝试将内容脚本添加到当前选项卡。 您当前没有加载任何选项卡(除非您让它自动加载选项卡,否则它将失败)。 然后它将不再做任何事情,因为背景页面只运行一次!

您需要做的是使用内容脚本,其定义如下:

// Only execute in the top window, we don't want to inject the iframes.
if (window == top) {
  window.location = 'www.google.com'
}

在您的清单中,您将拥有以下内容:

{
  "name": "No more Facebook extension",
  ...
  "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "js": ["redirect.js"]
    }
  ],
  ...
}

我认为您想使用内容脚本而不是背景页面。 您可以指定您的内容脚本只应在特定的 web 页面上运行。

你曾经调用过 move() 吗? 对我来说看起来不像,但我以前从未开发过 Chrome 扩展程序......所以我不确定它是否会被自动调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM