Chrome扩展延迟条件

时间:2012-12-24 17:09:09

标签: google-chrome-extension

我创建了一个chrome扩展程序,在单击其按钮后执行某些操作。 但是我不希望它被滥用,所以我需要在一段时间后执行它的代码。

为了达到这个目的,我怎么能用超时来包围这段代码呢?

感谢您阅读我!

chrome.tabs.getSelected(null,function(tab) {
var Mp=tab.url.substring(0,23);
if(Mp=='https://www.example.com')
{
onWindowLoad();

chrome.extension.onMessage.addListener(function(request, sender) {
    if (request.action == "getSource")
    {
    ...Working here
    }
});
}
else
{
message.innerHTML='<span style="color: #f00">This is not a valid page</span>';
}
});

function onWindowLoad()
{
var message = document.querySelector('#message');
chrome.tabs.executeScript(null, {file: "getPagesSource.js"});
}

1 个答案:

答案 0 :(得分:0)

我必须妥协,所以在getSelected之后我添加了以下行:

chrome.browserAction.disable(tab.Id);

它禁用了操作按钮,因此在脚本将数据发送到服务器时无法单击它,就像这个扩展名一样,我抓住了tab标签以便将它存储在我的数据库中。 在ajax响应之后添加以下内容

if(xhr.readyState==4)
{
message.innerHTML=xhr.responseText;
chrome.browserAction.enable(tab.Id); /////<---THAT LINE
}

按钮再次准备好被点击。

我无法找到以秒为单位添加特定延迟的方法,这种方式似乎很愚蠢,但是它正常工作,因为响应来自我的服务器的延迟足以切换操作按钮的2个状态。

有了这个,然而又出现了另一个问题,我写了不同的问题。