Javascript:在后台停止运行间隔

时间:2015-12-29 00:40:46

标签: firefox-addon

我正在为Firefox创建扩展程序。这包括使用self.port。这是panel.js中的代码:

self.port.on("showDlg", function(val) {
    document.getElementById('queen').onclick = function(){
        self.port.emit("song", 'queen');
    };
    document.getElementById('beatles').onclick = function(){
        self.port.emit("song", 'beatles');
    };
});

这是content.js

self.port.on("song", function(val) {
    if (val.code = 'queen'){
        interval = setInterval(function () {
            console.log('show must go on');
        }, 1000);
    } else if (val.code == 'beatles'){
        interval = setInterval(function () {
            console.log('yesterday');
        }, 1000);
    }
}

一切正常,当我点击queen时,它每1秒打印一次show must go on。但是当我点击beatles时,它仍会打印show must go onyesterday

如何停止前一段时间?据我所知,它在后台运行,每个动作都是一个新实例。如果是这样,我该如何停止前一个实例?

感谢。

1 个答案:

答案 0 :(得分:1)

<div class="row">
    <div class="col-md-4 col-sm-6 text-center">
        <div class="product">
            <img src="img.jpg" alt="" class="img-responsive">
            <h3>Name</h3>
            <p>Description</p>
        </div>
    </div>
</div>
<style>
    .product {
        /* this is to automatically center and prevent overflow
           on very narrow viewports */
        display: inline-block;
        max-width: 100%;
    }
</style>