2010-09-15 21 views
14

Diyelim ki benim uzantımda settings.json adında depolanmış bir JSON dosyanız var. Ben kullanarak dosyanın URL'sini alabilirsiniz:Bir krom uzantısında saklanan bir varlık yükleniyor

chrome.extension.getURL("settings.json"); 

Ama şimdi URL olduğunu, nasıl aslında bu dosyanın içeriğini bu yüzden JSON.parse ve kullanabilirsiniz yüklerim? Bunu yapmamın nedeni bir sunucu bileşeni olması ve dağıtımın ve birden fazla sunucu üzerinde test yapmayı (dev, aşamalandırma, üretim vb.) Yapmak istiyorum. Alternatif olarak, manifest'e özel nitelikler eklemenin bir yolu varsa. json ve onlara eriş, bu da işe yarayacaktı. Eğer değişken bir arka plan sayfası ve kullanım ayarlarına dahil sadece edebilirsiniz Sonra

var settings = {"param":value,...}; 

: Eğer sevdiği setting.js görünmesi durumunda

cevap

24

saf json olmasını istiyorsanız

<script src="settings.js"></script> 

Dosyanızda herhangi bir değişkene atamadan o zaman XMLHttpRequest: .210 ya da projeye jquery dahil edin:

$.getJSON(chrome.extension.getURL('/config_resources/config.json'), function(settings) { 
    //.. 
}); 

+1

İlk önerinizi yapabilirim. İkincisi, aşağıdaki hatayı alıyorum (içerik komut dosyasından): XMLHttpRequest, chrome-extension: // /settings.json dosyasını yükleyemiyor. Çapraz kaynaklı istekler sadece HTTP için desteklenir. Yakalanmamış Hata: NETWORK_ERR: XMLHttpRequest İstisnası 101 – Evan

+0

@Evan Ok Sonra içerik komut dosyası konusunda yanıldım, üzgünüm. Bir içerik komut dosyasında buna ihtiyacınız varsa, 'chrome.extension.sendRequest' kullanarak arka plan sayfasına bir istek gönderebilir ve sizin için ayarları almasını isteyebilirsiniz (ilk yöntemle bile olsa bir istek göndermeniz gerekecektir). – serg

2

elimden (bir İçerik komut bir dosyaya erişme eğer btw chrome.extension.getURL kullanarak aksi takdirde sadece göreli yol /config_resources/config.json kullanabilirsiniz, sadece gereklidir) Arka plan sayfasındaki bir XHR kaynağını talep etmenin daha önce açıklandığı gibi çalıştığını doğrulayın. Sadece content_security_policy'unuzun connect-src bölümüne 'kendim' eklemeyi unutmayın.

+0

Başka bir nokta da dikkate alınmalıdır: web_accessible_resources https://stackoverflow.com/a/14236129/742884 –

İlgili konular