2016-03-26 10 views
0

https://www.example.com/* ile eşleşen URL'lerdeki sayfalarda içerik bildirimi content.js çalıştırmak istediğim bu sorunu yaşıyorum. Aşağıdaki manifest.json tanımladığınız:Chrome uzantısı - URL güncellemelerinde içerik komut dosyasını yükle

{ 
    ... 

    "content_scripts": [ 
    { 
     "matches": ["https://www.example.com/*"], 
     "js": ["content.js"] 
    } 
    ], 

    ... 
} 

Ancak kullanıcı bir köprü tıklayarak örneğin https://www.example.com/* için başka bir sayfaya (diyelim https://www.foo.bar) den gittiğinde content.js yüklenmeyecektir. Sadece kullanıcı doğrudan https://www.example.com/*'u ziyaret ettiğinde yüklenir.

tüm sayfalarına content.js enjekte düşünen ve geçerli URL https://www.example.com/* maçları görmek için arka planda chrome.tabs.onUpdate dinleyerek ve bu content.js mesaj göndermek güveniyorum. Bu konuda çalışmak için daha iyi bir yolu var mı?

function processUrl(tabId, url) { 
    if(url.indexOf("https://www.example.com")>-1){ 
    chrome.tabs.executeScript(tabId, {file:"content.js"}, function() { 
     //send and receive msgs here 
    }; 
    } 
} 

Sonra sadece dinleyici (ler) den bu işlevi çağırır:

cevap

0

Sen göndermek için vardır alma işlevi, arka plan sayfasından programlı Senaryonu enjekte/iletileri executeScript en geri arama alırlar. Bir kütüphane veya başka bir bağımlılık kullanmak istiyorsanız, ilk önce kütüphaneyle executeScript'i ve ilk aramanın geri çağrımında betiğiniz ile executeScript'i çağırın.

İlgili konular