2014-08-30 57 views
-1

我正在使用Chrome擴展,但由於某種原因,我只能在單個函數中創建新選項卡,而不能在多個函數中創建。在Chrome擴展的Javascript中爲多個函數打開新選項卡問題

代碼 -

function editorial() { 
    chrome.tabs.query({currentWindow: true, active: true}, function(tabs){ 
    var tab_url=tabs[0].url; 
    var new_url=tab_url.slice(11); 
    chrome.tabs.create({ url:"http://www.discuss." + new_url});   
    }); 
} 

document.addEventListener('DOMContentLoaded', function() { 
    var btn = document.getElementById('viewEditorial'); 
    if (btn) { 
    btn.addEventListener('click', editorial); 
    } 
}); 

function friends() 
{ 
    var frnd_name=document.getElementById('frnd1').value; 
    alert(frnd_name+"rocks"); 
    /*chrome.tabs.query({currentWindow: true, active: true}, function(tabs){ 
     var tab_url=tabs[0].url; 
     var new_url=tab_url.slice(11); 
     chrome.tabs.create({ url:"http://www.discuss." + new_url});*/ 


} 
document.addEventListener('DOMContentLoaded', function() { 
    var btn2 = document.getElementById('viewFriends'); 
    if (btn2) { 
    btn2.addEventListener('click', friends); 
    } 
}); 

我希望能夠使用frnd_name在功能的朋友一個新的選項卡中打開一個網址()。

如果未使用註釋部分,則表示它工作正常,並且警報消息也將到來,但如果註釋部分由於某種原因而被使用,則不起作用。

任何有關錯誤/問題的想法?

回答

0

我認爲這是因爲chrome.tabs不能在內容腳本中使用。

你應該這樣做,而不是:

  1. 將消息發送給使用chrome.runtime.sendMessage
  2. 在你的背景頁的背景頁,使用chrome.runtime.onMessage趕上消息
  3. 最後使用chrome.tabs.create創建一個新選項卡。

希望這有助於

0

好了,問題是由於缺少「}」,這是不存在的。 我浪費了很多時間,最終這個bug非常簡單。 現在,我已經吸取了教訓,總是檢查烏爾代碼兩次適當的括號。

+0

您可以使用linint工具(例如JSLint或JSHint)來驗證您的代碼。它會爲你節省很多時間。 – Oleg 2014-08-31 07:13:53

相關問題