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