javascript - 在 Chrome 扩展中注入(inject)重定向 JS。失败! :(

标签 javascript google-chrome google-chrome-extension

我正在尝试生成一个扩展程序,让我的兄弟继续使用 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>

然而,它不会重定向。我也尝试过使用内容脚本直接注入(inject) try.js。

请帮帮我。

谢谢。

阿莎:)

最佳答案

记住一个Background Page在 Chrome 中只运行一次,它是一个只运行一次的长时间运行的脚本。

基本上您的代码现在所做的是,一旦您的浏览器加载,它将注入(inject) jquery 并尝试 Content Scripts到当前选项卡。您当前没有加载任何选项卡(除非您自动加载选项卡,否则它将失败)。然后它将不再执行任何操作,因为后台页面只运行一次!

您需要做的是使用 Content Script应该定义如下:

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

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

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

关于javascript - 在 Chrome 扩展中注入(inject)重定向 JS。失败! :(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6233714/

相关文章:

javascript - .replace 函数的问题

javascript - 如何调试 $(document).ready() 中包含的 javascript?

css - 绝对图像在移动浏览器中并不保持绝对

javascript - 使用 iframe 通过 Chrome 扩展将本地 HTML 文件注入(inject)网页?

google-chrome-extension - 我无法在Chrome扩展程序上播放youtube chromeless播放器

javascript - 注入(inject) jQuery 不起作用

JavaScript Canvas 检查矩形是否包含矩形

javascript - chrome 扩展程序重新加载后无法发送消息

javascript - chrome.browserAction.setIcon 没有做任何事情

javascript - Shiny 的应用程序以不同的设置开始