我正在尝试生成一个让我的兄弟知道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"
},
]
}
我的background.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.
请帮帮我。
感谢你。
Ashar:)
答案 0 :(得分:2)
请记住,Background Page只在Chrome中运行一次,它是一个长时间运行的脚本,只运行一次。
基本上你的代码现在所做的是,一旦你的浏览器加载,它将注入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'
}
在您的清单中,您将拥有以下内容:
{
"name": "No more Facebook extension",
...
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["redirect.js"]
}
],
...
}
答案 1 :(得分:1)
我认为你想使用content script而不是背景页面。您可以指定您的内容脚本只应在特定网页上运行。
答案 2 :(得分:0)
你有没有打电话给move()?对我来说看起来不像,但我之前从未开发过Chrome扩展程序......所以我不确定是否会自动调用它。