2012-04-27 3 views
6
function doit() { 
alert(3); 
// Statement 1 
// chrome.tabs.create({url:"http://www.google.com"}); 
// Statement 2 
// chrome.tabs.update({url:"http://en.wikipedia.org"}); 
alert(4); 
} 


chrome.browserAction.onClicked.addListener(doit); 

yapar."chrome.tabs.create" çalışır, ama senaryo olduğu gibi, ben 3 ve 4. OK JS uyarıları almak çalıştığında "chrome.tabs.update" değil

Ifade 1'de yorum yaptığımda ve komut dosyasını çalıştırdığımda, 3'lük bir JS uyarısı alıyorum, daha sonra Google yeni, etkin bir sekmede açılır, ardından beklediğim gibi bir JS uyarısı alırsınız.

Açıklama 1 ve açıklama 2'de açıklama yaptığımda 3, bir JS uyarısı alıyorum ve hepsi bu.

http://code.google.com/chrome/extensions/tabs.html#method-update, uyarınca tabId nesnesini iletmem gerekmiyor, çünkü "geçerli pencerenin seçili sekmesinde varsayılan değerdir." Url nesnesi, chrome.tabs.create ifadesi 1'i çalıştırdığımda fark ettiğim gibi "sekmede gezinmek için bir URL" olarak tanımlanır.

chrome.tabs.update ifadem neden çalışmıyor?

cevap

0

Güncellemek istediğiniz hangi sekmeyi (tab.id) belirtmeniz gerekir.

+0

, tabid seçilen isteğe bağlı ve "varsayılan geçerli pencerenin sekmesi. – mdslup

5

tabId parametresinin belirtilmesi gerekir. Varsayılan ayarları kullanmak istiyorsanız null tedarik edin. Aksi durumda, aşağıdaki hata oluşuyor:

Error in event handler for 'browserAction.onClicked': Error: Invalid value for argument 1. Expected 'integer' but got 'object'.

Bu mesaj arkaplan sayfa de kaydedilir. Bu konsola erişmek için this answer'daki dört adımı izleyin.

Düzeltilmiş kodu: göre chrome.tabs.update(null, {url:"http://en.wikipedia.org"});

+0

Bu çalışır. Teşekkürler. 'İsteğe bağlı argüman' tanımım her zaman sadece ... olduğu için geçti. Ayrıca, arka plan sayfasına nasıl erişeceğinizle ilgili bilgiler için teşekkürler. – mdslup

İlgili konular