相关疑难解决方法(0)

如何用JavaScript打开我的扩展程序弹出窗口?

我正在尝试编写一个JavaScript函数,它将打开我的扩展名,就像点击扩展图标一样.我知道如何在新标签中打开我的扩展程序:

var url = "chrome-extension://kelodmiboakdjlbcdfoceeiafckgojel/login.html";
window.open(url);
Run Code Online (Sandbox Code Playgroud)

但是我想在浏览器的右上角打开一个弹出窗口,就像点击扩展图标一样.

google-chrome google-chrome-extension

36
推荐指数
3
解决办法
3万
查看次数

阻止Chrome扩展程序的popup.html打开自己

我正在创建一个Chrome扩展程序,其中包含一个background.html每分钟从API请求一次信息的文件.一旦它收到信息,它就会发送popup.html一条消息,其中包含弹出窗口用于将新HTML元素附加到弹出框体上的JSON信息.

问题是后台持续运行(应该如此),但即使弹出窗口关闭,它也会弹出.这导致弹出窗口每分钟打开一次非常烦人.

我想知道,有没有办法看看popup是否关闭,如果是这样的话,什么都不做?或者还有另一种方法可以防止弹出窗口自行打开?

这是Github存储库,但重要的部分在下面突出显示.

这是我在弹出窗口的方式:

// background.js

function sendQuestions()                                                                                                                                                                                    
{                                                                                                                                                                                                           
    var questions = JSON.parse(db.getItem(storage));                                                                                                                                                        
    chrome.extension.sendRequest(appid, { 'questions': questions }, function() {});                                                                                                                         
}  

setInterval(sendQuestions, 60e3);
Run Code Online (Sandbox Code Playgroud)

这是弹出窗口处理它的方式:

// popup.js

chrome.extension.onRequest.addListener(function(request) {                                                                                                                                                  
    if (request.questions) {                                                                                                                                                                                
        displayQuestions(request.questions);                                                                                                                                                                
    }
});

function displayQuestions(questions)                                                                                                                                                                        
{     
    for (i = 0; i < questions.length; i++) {                                                                                                                                                                
        var question = questions[i];  
        var htmlBlock = // ... generate a block of html ...
        $('#container').prepend(htmlBlock);
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery google-chrome-extension

5
推荐指数
1
解决办法
5675
查看次数