1

我正在尝试制作一个播放音乐的谷歌扩展程序。当我关闭扩展程序并浏览其他网站时,我希望扩展程序也能播放。我是否必须更改 manifest.json、background.html 或 main.html(我的索引/弹出文件)的代码?这是我的 manifest.json 的代码:

{
    "name": "SpeedSongz.fm",
    "description": "Instantly listen to your favorite music and radios.",
    "version": "1.0",
    "browser_action": {
        "default_icon": "icon.png",
        "default_title": "SpeedSongz.fm",
        "popup": "main.html"
    },
    "background_page" : "background.html"
}

那么,即使实际的扩展程序已关闭,我该如何编写代码以使音乐继续在后台运行呢?是否可以?谢谢!

4

2 回答 2

6

附加功能可能是,在 bakcround 页面中创建两个功能,一个停止音乐,另一个重新启动它:

function stop(){

}

function start(){

}

因此,当用户打开 main.html 时,可能会有两个图标,上面有两个监听器,每个监听器都可以调用后台页面函数,例如:

var backgroundpage = chrome.extension.getBackgroundPage();
$("start_button").click(function(){
backgroundpage.start();
});

$("stop_button").click(function(){
backgroundpage.stop();
});

:)

编辑:

popup.html:

<html><head><script type="text/javascript" src="jquery.js"></script> 
<script>
$(document).ready(function(){
    var bgp = chrome.extension.getBackgroundPage();
    $("#start_btn").click(function(){
        bgp.start();
    });

    $("#stop_btn").click(function(){
        bgp.stop();
    });
});
</script>
</head><body>
<div>
    <button type="button" id="start_btn">Start</button>
    <button type="button" id="stop_btn">Stop</button>
</div>
</body></html>

背景.html:

<html><head><script type="text/javascript" src="jquery.js"></script> 
<script>
var audio = new Audio('guitar.mp3');
audio.loop="loop";
audio.play();

function start(){
    audio.play();
}

function stop(){
    audio.pause();
}

</script>
</head><body></body></html>

就是这样:)

于 2012-05-16T20:00:36.380 回答
2

背景页面正是为此目的。它们的行为类似于常规页面,但不可见(当然,除非您访问开发者模式)。在加载扩展程序的整个过程中,背景页面都是活动的。

为了与您站点的背景页面进行通信,您将使用内容脚本并向页面发送消息。

于 2012-05-15T03:31:37.170 回答