2011-07-15 56 views
0

在我的表現,我有這樣的:的Javascript,Chrome擴展的發展,緊密彈出

"popup": "1_options.html" 

,並在上面的html文件,我有這樣的代碼

var saved_email = localStorage['saved_email']; 
    if (saved_email !== undefined || saved_email != "[email protected]") 
    { 
     chrome.tabs.create({url: '0_register.html'}); 
    } 

,因爲我想這是工作準確,它打開一個新的選項卡與register.html但它仍然有彈出右上方打開:((1_options.html)

是否有反彈自動關閉彈出窗口,因爲我打開這個新選項卡?

謝謝! 瑞安

+0

我不會把這個問題歸結爲答案,因爲我不確定,但'chrome.browserAction.setPopup('')'工作嗎? http://code.google.com/chrome/extensions/browserAction.html – Milimetric

+0

它對我來說確實很近。請注意,只有當您沒有打開「開發工具」時纔會關閉它。你有沒有關閉? – pimvdb

回答

2

有幾種方法可以做到這一點,但最簡單的就是叫:

window.close(); 

時,你甚至可以做到這一點的回調函數創建您的標籤...

chrome.tabs.create({url: '0_register.html'}, function() { 
    window.close(); 
}); 

您還可以在您的高建羣中添加一個偵聽器ound腳本檢查標籤的更新,如果你的新標籤是你的掛號窗口,你可以刪除彈出:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { 
    if(changeInfo.status == "loading") { 
     if(tab.url == "chrome-extension://[extension-id]/0_register.html") { 
      chrome.tabs.remove(tabId); 
     } 
    } 
}); 
+0

哎呀,你剛剛寫下了我選擇的其他答案:)介意告訴我如何從後臺腳本關閉另一個窗口(彈出窗口)? (我已經有一個標籤監聽器來捕獲地址) – Ryan

+1

@Ryan第二種方法可能是最精確的,但至少這應該給你很多選擇。 – scurker

1
 chrome.tabs.create({url: '0_register.html', selected: true}); 

如果你不介意被創建時所選擇的新標籤,這也迫使彈出窗口關閉。

+0

謝謝,也會試試! (已投票) – Ryan