6

Hi bir hata alıyorum. Aşağıdaki hatayı alıyorum bir işlev içinde bir fonksiyonu dışında ancak zaman ince kullanılabilir:Hata chrome.notifications.create kullanarak "Yakalanmayan TypeError: tanımsız özelliğini okundu 'create' Can not" krom app js bir işlev içinden chrome.notifications.create çağrılırken

document.addEventListener('DOMContentLoaded', function() { 
document.getElementById('submit').addEventListener('click', submit); 
}); 
function submit() { 
    var options = { 
    type:"basic", 
    title:"nameVal", 
    message:"msgVal", 
    iconUrl:"icon.png", 
    }; 
    //notification options set 
    chrome.notifications.create(options,callback); 
    //notification set 
} 
function callback() { 
    console.log("Notification succesfull"); 
    //notification confirmed 
} 

Teşekkür: Burada

: "Yakalanmayan TypeError özelliği okunamıyor tanımsız ait 'create'" kodudur herhangi bir yardım takdir böylece :)

cevap

13

2 olası neden vardır.

  • Bunu bir content script'dan kullanmaya çalışıyorsunuz. Yapamazsınız: İçerik komut dosyaları, arayabilecekleri Chrome API'larında çok sınırlıdır. Içerik komut send a message bir arka plan senaryoya alın ve işlem çalıştırın: Bu durumda

    However, content scripts have some limitations. They cannot:

    Use chrome.* APIs, with the exception of:
    extension ( getURL , inIncognitoContext , lastError , onRequest , sendRequest )
    i18n
    runtime ( connect , getManifest , getURL , id , onConnect , onMessage , sendMessage )
    storage

    , bir arka plan komut dosyasına bu çağrıyı devretmek gerekir.
  • Sen bir uzantısı komut dosyasından diyoruz çalışıyoruz, ancak "notifications" izni beyan etmedi.

    Bu durumda düzeltme önemsizdir - yalnızca izni ekleyin.

+0

Hey yine de yardımcı olabilirsiniz –

6

Eğer manifest.json için krom bildirimler izinleri eklediniz js ve krom uygulamalarına geldiğinde bir çaylak değilim? ve Uzantınızda yüklenen isnt ve ne de erişime sahip olduğundan ile permissions: ["notifications",//other permissions here]

izinleri fırsatları ekleyerek

.

+0

('icon_86.png', benim proje kök dizinde). – erikdstock

+0

Zaten bunu manifest.json dosyasında yaptım tho teşekkürler. Gerçekten kafam karıştı – pizza1talia

+0

Sadece belgelere baktım, geriçağırım fonksiyonunun functionID geri bildirimi (notificationId) {...} 'gibi bildirimID parametresine sahip olması gerektiğini düşünüyorum. Bu işe yaramazsa, geri arama işlevi başvurusunu create() işlevinden kaldırmaya çalışın, böylece sadece "... oluştur (seçenekler);" –

0

Bu undefined soru için chrome.notifications kullandığımda bir durumum var.

Ancak 'icon_86.png' resim klasöründe değil.

Çözüm: Ben doğru iconUrl kullandığınızda Tamam olacaktır.

Bu benim cevap daha iyidir