Sorunuzun yanıtını burada bulamazsanız Chrome Web Mağazası SSS Stack Overflow'daki, chromium-extensions grubundaki veya mağaza yardımı.
Genel
Google Chrome uzantıları nedir?
Google Chrome Uzantıları, Chrome tarayıcısının içinde çalıştırılan ve işlevsellik, üçüncü taraf web siteleri veya hizmetleriyle entegrasyon ve özelleştirilmiş göz atma paylaşmaya istekli olmalıdır.
Chrome'u uzantı geliştirme için nasıl ayarlayabilirim?
Chrome'un uzantıları destekleyen bir sürümünü kullandığınız sürece kendi uzantınızı yazmaya başlamanız gerekir. Geliştirici modunu açarak başlayabilirsiniz.
Chrome menü simgesini tıklayın ve Araçlar menüsünden Uzantılar'ı seçin. Lütfen "Geliştirici modu" onay kutusu işaretli olmalıdır. Şimdi yeniden yükleyebilirsiniz uzantıları için paketlenmemiş bir dosya dizinini paketlenmiş bir uzantı gibi yükleyebilir ve daha pek çok işlem yapabilirsiniz. Örneğin, Başlarken bölümüne bakın.
Chrome için uzantı yazmak amacıyla hangi teknolojiler kullanılır?
Uzantılar, geliştiricilerin oluşturmak için kullandığı standart web teknolojileri kullanılarak yazılır. bulabilirsiniz. İçerik biçimlendirme dili olarak HTML, stil vermek için CSS ve biçimlendirme için CSS kullanılır. üzerine konuşacağız. Chrome, HTML5 ve CSS3'ü desteklediği için geliştiriciler en son açık web'i kullanabilir teknolojilerine geçiş yapıyorlar. Uzantılar şunlara da erişebilir: JSON kodlaması ve etkileşimde bulunma gibi işlevleri gerçekleştirmeye yardımcı olan çeşitli JavaScript API'leri tarayıcı.
Uzantılar, tarayıcı her yüklendiğinde web'den getirilir mi?
Uzantılar, yüklendikten sonra Chrome tarayıcısı tarafından indirilir ve ardından yerel diski değiştirir. Ancak uzantının yeni sürümü aktarılırsa uzantısına sahip olan tüm kullanıcılara arka planda otomatik olarak indirilecektir. yüklendi. Uzantılar ayrıca, web sitesiyle etkileşimde bulunmak için herhangi bir zamanda olabilir veya web'den yeni içerik çekebilir.
Chrome'un hangi sürümünün hangi kanala dağıtıldığını nasıl belirleyebilirim?
Farklı platformlarda hangi Chrome sürümünün şu anda kullanılabildiğini belirlemek için omahaproxy.appspot.com adresini ziyaret edin. Bu sitede aşağıdakine benzer bir biçimde veriler görürsünüz:
cf,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,canary,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
Her satır, farklı bir platform ve kanal kombinasyonuyla ilgili bilgileri temsil eder. Listelenen
platformlar şunlardır: cf
(Google Chrome Frame), linux
, mac
, win
ve cros
(Google ChromeOS). İlgili içeriği oluşturmak için kullanılan
listelenen kanallar: canary
, dev
, beta
ve stable
.
kanal, söz konusu platform kanalına dağıtılan Chrome'un mevcut ve önceki sürümlerini temsil eder
seçilebilir. Bilgilerin geri kalanı, yayınların ilk kez aktarıldığı tarihle ilgili meta verilerdir.
ve her derlemeyle ilişkili revizyon numaraları yer alır.
İşlemler
Uzantılar, web alanları arası Ajax isteğinde bulunabilir mi?
Evet. Uzantılar, web alanları arası istekler yapabilir. Daha fazla bilgi için bu sayfaya bakın.
Uzantılar üçüncü taraf web hizmetlerini kullanabilir mi?
Evet. Uzantılar, alan adları arası Ajax istekleri yapabildiğinden uzak API'leri çağırabilir. doğrudan ekleyebilirsiniz. Verileri JSON biçiminde sağlayan API'lerin kullanımı özellikle kolaydır.
Uzantılar, JSON verilerini kodlayabilir/kodlarını çözebilir mi?
Evet, V8 (Chrome'un JavaScript motoru) JSON.stringify ve JSON.parse'yi yerel olarak desteklediğinden, bu işlevleri burada açıklandığı gibi, başka hiçbir ek Kodunuzdaki JSON kitaplıkları.
Uzantılar yerel olarak veri depolayabilir mi?
Evet. Uzantılar, dize verilerini kalıcı olarak depolamak için localStorage'ı kullanabilir. Chrome'un yerleşik özelliklerini kullanma JSON işlevleri için karmaşık veri yapılarını localStorage'da depolayabilirsiniz. Şunlara ihtiyacı olan uzantılar: depolanan verileri üzerinde SQL sorguları yürütüyorsa Chrome, istemci tarafı SQL veritabanlarını değerlendirilebilir.
Uzantılar OAuth kullanabilir mi?
Evet, uzak veri API'lerine erişmek için OAuth kullanan uzantılar var. Çoğu geliştirici bunu bulur OAuth imzalama sürecini basitleştirmek için JavaScript OAuth kitaplığı kullanımı kabul edersiniz.
Uzantılar, oluşturulan web sayfasının dışında kullanıcı arayüzü oluşturabilir mi?
Evet, uzantınız Chrome tarayıcının kullanıcı arayüzüne düğmeler ekleyebilir. Bkz. Tarayıcı işlemlerine ve sayfa işlemlerine göz atabilirsiniz.
Bir uzantı, tarayıcı penceresinin dışında pop-up bildirimleri de oluşturabilir. Bkz. masaüstü bildirimleri dokümanlarına göz atın.
Uzantılar, Chrome sekmelerinin ve gezinme düğmelerinin tıklamalarını dinleyebilir mi?
Hayır. Uzantılar, API belgelerinde açıklanan etkinlikleri dinlemeyle sınırlıdır.
İki uzantı birbiriyle iletişim kurabilir mi?
Evet, uzantılar mesajları diğer uzantılara iletebilir. Mesaj iletme belgelerine bakın. konulu videomuzu izleyin.
Uzantılar Google Analytics'i kullanabilir mi?
Evet. Uzantılar da web siteleri gibi oluşturulduklarından, bu uzantıları izlemek için Google Analytics'i bazı yolları da görmüştük. Ancak, Google Analytics'in HTTPS sürümünü almak için izleme kodunu değiştirmeniz gerekir. kitaplığını açar. Bunu yapma konusunda daha fazla bilgi için bu eğitime bakın.
Uzantılar chrome:// URL'lerini değiştirebilir mi?
Hayır. Uzantı API'leri, ortaya çıkabilecek geriye dönük uyumluluk sorunlarını en aza indirmek için tasarlanmıştır.
Tarayıcının yeni sürümleri aktarıldığında. chrome://
URL'de içerik komut dosyalarına izin vermek şu anlama gelir:
geliştiricilerin aynı kalmak için bu sayfaların DOM, CSS ve JavaScript'ini
kullanmaya başlayacağını öngörüyoruz.
En iyi durumda, bu sayfalar şu anda güncellendikleri kadar hızlı şekilde güncellenemez.
En kötü durumda, bu sayfalardan birinde yapılan bir güncelleme, uzantının
bozularak tarayıcının önemli bölümlerinin söz konusu uzantının kullanıcıları için çalışmayı durdurmasına neden olur.
Bu URL'lerde barındırılan içeriğin değiştirilmesine tamamen izin verilir. Bu değişiklik, bir uzantı geliştiricisini tarayıcının dahili uygulamasını değiştirmeyin.
Uzantılar, kullanıcı etkileşimi olmadan tarayıcı/sayfa işlemi pop-up'larını açabilir mi?
Hayır, pop-up'lar yalnızca kullanıcı ilgili sayfayı veya tarayıcı işlemini tıklarsa açılabilir. uzantı, pop-up'ını programatik olarak açamıyor.
Uzantılar, kullanıcı tıkladığında pop-up'ları açık tutabilir mi?
Hayır, kullanıcı tarayıcının tarayıcı dışında bir bölümüne odaklandığında pop-up'lar otomatik olarak kapanır görürsünüz. Kullanıcı tıkladıktan sonra pop-up'ı açık tutmanın bir yolu yoktur.
Uzantılar yüklendiğinde/kaldırıldığında bildirim alabilir mi?
Uzantınız yüklendiğinde bildirim almak için runtime.onInstalled etkinliğini dinleyebilirsiniz. ne zaman yüklendiğini ya da güncellendiğinden veya Chrome'un kendisi güncellendiğinde. Şu zamana karşılık gelen bir etkinlik yok: uzantınız kaldırılır.
Geliştirme
Uzantım için nasıl bir kullanıcı arayüzü oluşturabilirim?
Uzantılar, kullanıcı arayüzlerini tanımlamak için HTML ve CSS'yi kullanır. Dolayısıyla, standart form denetimlerini kullanabilirsiniz oluşturun veya arayüzün stilini bir web sayfası gibi CSS ile belirleyin. Ayrıca uzantılar bazı sınırlı kullanıcı arayüzü öğelerini Chrome'un kendisine ekleyebilir.
localStorage'da ne kadar veri depolayabilirim?
Uzantılar, localStorage'da 5 MB'a kadar veri depolayabilir.
Uygulamam için nasıl seçenek menüsü oluşturabilirim?
Bir seçenekler sayfası oluşturarak kullanıcıların uzantınıza ilişkin seçenekleri belirlemelerine izin verebilirsiniz. kullanıcı "seçenekler"i tıkladığında yüklenecek basit HTML sayfası düğmesini seçin. Bu sayfa, ayarları okuyup localStorage'a yazabilir, hatta seçenekleri bir web sunucusuna gönderebilir. Bunlar farklı tarayıcılarda da kalıcı olabilir.
Uzantı geliştiricileri hangi hata ayıklama araçlarını kullanabilir?
Chrome'un yerleşik geliştirici araçları, web sayfalarının yanı sıra uzantılarda hata ayıklamak için de kullanılabilir. Bunu göster uzantılarda hata ayıklamayla ilgili eğiticiye göz atabilirsiniz.
Joker karakter eşleşmeleri neden üst düzey alanlar (TLD'ler) için kullanılamaz?
TLD'leri eşleştirmek için http://google.*/*
gibi joker karakter eşleme kalıplarını kullanamazsınız (ör.
http://google.es
ve http://google.fr
) daha karmaşık olduğu için, bu tür bir kısıtlamanın
yalnızca istenen alanlarla eşleştirilir.
http://google.*/*
örneği için Google alanları eşleştirilir ancak
http://google.someotherdomain.com
. Buna ek olarak, birçok site kendi TLD'lerinin tümüne sahip değildir
alan. Örneğin, http://example.com
ile eşleştirmek için http://example.*/*
kullanmak istediğinizi varsayalım
ve http://example.es
, ancak http://example.net
saldırgan bir site. Uzantınızda bir hata varsa
saldırgan bir site, uzantınıza erişmek için uzantınıza potansiyel olarak saldırabilir.
Ayrıcalık artışı.
Uzantınızı çalıştırmak istediğiniz TLD'leri açıkça belirtmeniz gerekir.
Uzantım yüklendiğinde/kaldırıldığında neden yönetim API'si etkinlikleri tetiklemiyor?
management API'nin amacı, yeni sekme sayfası değiştirme uzantılarının oluşturulmasına yardımcı olmaktır. Hayır mevcut uzantı için yükleme/kaldırma etkinliklerini tetiklemesi amaçlanmıştır.
Bir uzantının ilk kez çalışıp çalışmadığını nasıl belirleyebilirsiniz?
runtime.onInstalled etkinliğini dinleyebilirsiniz. Bu SSS girişine bakın.
Özellikler ve hatalar
Sanırım bir hata buldum! Sorunun düzeltildiğinden nasıl emin olabilirim?
Bir uzantı geliştirirken, uzantıyla eşleşmeyen davranışlarla karşılaşabilirsiniz dokümanlarına sahiptir ve Chrome'daki bir hatadan kaynaklanabilir. Yapılacak en iyi şey, ve Chromium ekibi sorunu yeniden oluşturmak için yeterli bilgiye sahip olduğunda gösterir.
Bunun için uygulamanız gereken adımlar:
- Bildirmek istediğiniz sorunu gösteren en küçük test uzantısını bulun. Bu uzantı, hatayı göstermek için mümkün olduğunca az kod içermelidir. Genellikle bu, 100 satır veya daha az kod. Geliştiriciler çoğu zaman aynı soruna neden Böylece, hatanın kendi kodlarında olduğuna dair iyi bir gösterge olur.
- Başka birisinin benzer bir durum bildirip bildirmediğini görmek için http://crbug.com adresindeki sorun izleyicide arama yapın.
. Uzantılarla ilgili çoğu sorun component=Platform>Extensions altında tutulur, bu nedenle
(örneğin, chrome.tabs.executeScript işleviyle ilgili bir uzantı hatası aramak için)
"
component=Platform>Extensions Type=Bug chrome.tabs.executeScript
" araması yaptığınızda bu sonuç listesini görürsünüz. - Sorununuzu açıklayan bir hata bulursanız hata oluştuğunda bilgi almak için yıldız simgesini tıklayın bir güncelleme alır. "ben de" gibi hataya yanıt vermeyin veya "Bu proje ne zaman sabit mi?"; bu tür güncellemeler yüzlerce e-postanın gönderilmesine neden olabiliyor. Yalnızca aşağıdaki durumlarda yorum ekleyin: bilgi (daha iyi bir test durumu veya önerilen düzeltme gibi) ekleyebilirsiniz.
- Yıldız eklemek için uygun bir hata bulamazsanız http://crbug.com/new adresinden yeni bir sorun raporu gönderin. Bu formu doldururken mümkün olduğunca açık olun: Açıklayıcı bir başlık seçin, adımları uygulayın ve beklenen ile gerçek davranışı açıklayın. Testinizi ekleyin örneklem ekleyin ve gerekirse ekran görüntüleri ekleyin. Raporunuz, projenizin istenen diğerlerini kullanmaya devam ederseniz hatanızın hemen düzeltilme olasılığı o kadar artar.
- Hatanın güncellenmesini bekleyin. Çoğu yeni hatanın önceliği bir hafta içinde belirlenir, ancak bazen güncelleme yapılması daha uzun sürebilir. Sorunun ne zaman olacağını sormak için hataya yanıt vermeyin düzeltildi. İki hafta geçmesine rağmen hatanızda değişiklik yapılmamış olursa lütfen tartışma grubuna gidin.
- Hatanızı ilk olarak tartışma grubuna bildirdiyseniz ve bu SSS girişine yönlendirildiyseniz, orijinal ileti dizinize, yıldız eklediğiniz veya bildirdiğiniz hatanın bağlantısını ekleyerek yanıt verin. Bu, aynı sorunu yaşayan diğer kişiler için doğru hatayı bulmalarını kolaylaştırır.
Bir özellik isteğim var! Bunu nasıl bildirebilirim?
Özellikle deneysel bir API ile ilgili olan bir özellik belirlerseniz, uzantı geliştirme deneyimini iyileştirmek için, sorunda uygun bir isteğin işleme takip eder.
Bunun için uygulamanız gereken adımlar:
- Bir kişinin birhttp://crbug.com
kullanabilirsiniz. Uzantılarla ilgili çoğu talep
component=Platform>Extensions. Örneğin,
klavye kısayollarında (örneğin),
"
component=Platform>Extensions Type=Feature shortcuts
", size bu listeyi sonuç. - İsteğinizle eşleşen bir kayıt bulursanız hata kaydı yapıldığında bilgi almak için yıldız simgesini tıklayın. bir güncelleme alır. "ben de" gibi hataya yanıt vermeyin veya "Bu proje ne zaman implemented?"; bu tür güncellemeler yüzlerce e-postanın gönderilmesine neden olabiliyor.
- Yıldız eklemek için uygun bir kayıt bulamazsanız http://crbug.com/new adresinden yeni bir istekte bulunun. mümkün olduğunca ayrıntılı bilgi verin: Açıklayıcı bir başlık seçin ve ve nasıl kullanmayı planladığınızı belirtmelisiniz.
- Biletin güncellenmesini bekleyin. Yeni taleplerin çoğu, bir hafta içinde öncelik sırasına koyulur ancak güncelleme bazen daha uzun sürebilir. Özelliğin ne zaman kullanıma sunulacağını sormak için bilete yanıt vermeyin eklendi. Destek kaydınız iki hafta geçmesine rağmen değiştirilmediyse, lütfen şu adrese bir mesaj gönderin: tartışma grubuna gidin.
- İsteğinizi ilk olarak tartışma grubuna bildirdiyseniz ve bu SSS sayfasına yönlendirildiyseniz ilk ileti dizisine, yıldız eklediğiniz veya açtığınız biletin bağlantısını ekleyerek yanıt verin. Bu, Aynı istekte bulunan diğer kullanıcıların doğru bileti bulmasını kolaylaştırır.