chrome.devtools.inspectedWindow

Açıklama

İncelenen pencereyle etkileşimde bulunmak için chrome.devtools.inspectedWindow API'sını kullanın: İncelenen sayfanın sekme kimliğini edinin, kodu denetlenen pencere bağlamında değerlendirin, sayfayı yeniden yükleyin veya sayfadaki kaynakların listesini edinin.

Geliştirici Araçları API'lerinin kullanımına genel bir giriş için DevTools API'leri özetine bakın.

tabId özelliği, chrome.tabs.* API çağrılarıyla kullanabileceğiniz sekme tanımlayıcısını sağlar. Bununla birlikte, chrome.tabs.* API'nin güvenlikle ilgili nedenlerden dolayı Geliştirici Araçları uzantı sayfalarında görünmediğini lütfen unutmayın. Sekme kimliğini arka plan sayfasına iletmeniz ve chrome.tabs.* API işlevlerini buradan çağırmanız gerekir.

reload yöntemi, incelenen sayfayı yeniden yüklemek için kullanılabilir. Buna ek olarak çağrıyı yapan, kullanıcı aracısı dizesi için geçersiz kılma, sayfa yüklendikten hemen sonra eklenecek bir komut dosyası veya önbelleğe alınmış kaynakların yeniden yüklenmesini zorunlu kılma seçeneği de belirtebilir.

İncelenen sayfa içindeki kaynakların (dokümanlar, stil sayfaları, komut dosyaları, resimler vb.) listesini almak için getResources çağrısını ve onResourceContent etkinliğini kullanın. Resource sınıfının onResourceContentCommitted etkinliğiyle birlikte getContent ve setContent yöntemleri, örneğin harici bir düzenleyici tarafından kaynak içeriğinde değişiklik yapılmasını desteklemek için kullanılabilir.

Manifest

Bu API'yi kullanmak için aşağıdaki anahtarların manifest'te beyan edilmesi gerekir.

"devtools_page"

İncelenen pencerede kodu yürüt

eval yöntemi, uzantıların denetlenen sayfa bağlamında JavaScript kodunu yürütmesine imkan tanır. Bu yöntem doğru bağlamda kullanıldığında etkilidir, uygunsuz şekilde kullanıldığında tehlikelidir. eval yönteminin sağladığı belirli bir işleve ihtiyacınız yoksa tabs.executeScript yöntemini kullanın.

eval ve tabs.executeScript yöntemleri arasındaki temel farklar şunlardır:

  • eval yöntemi, değerlendirilmekte olan kod için izole bir dünya kullanmaz. Bu yüzden, incelenen pencerenin JavaScript durumuna kod, erişebilir. İncelenen sayfanın JavaScript durumuna erişim gerektiğinde bu yöntemi kullanın.
  • Değerlendirilmekte olan kodun yürütme bağlamı Geliştirici Araçları konsolu API'sini içerir. Örneğin, kodda inspect ve $0 kullanılabilir.
  • Değerlendirilen kod uzantı geri çağırmaya geçirilen bir değer döndürebilir. Döndürülen değer geçerli bir JSON nesnesi olmalıdır (yalnızca temel JavaScript türleri ve diğer JSON nesnelerine döngüsel referanslar içerebilir). İncelenen sayfadan alınan verileri işlerken lütfen daha dikkatli olun. Yürütme bağlamı temelde denetlenen sayfa tarafından kontrol edilir. Kötü amaçlı bir sayfa, uzantıya döndürülen verileri etkileyebilir.

Bir sayfanın birden çok farklı JavaScript yürütme bağlamı içerebileceğini unutmayın. Her çerçeve kendi bağlamına ve ayrıca o çerçevede çalışan içerik komut dosyalarına sahip her uzantı için ek bağlam sunar.

Varsayılan olarak eval yöntemi, denetlenen sayfanın ana çerçevesi bağlamında yürütülür.

eval yöntemi, kodun değerlendirildiği bağlamı belirtmek için kullanabileceğiniz isteğe bağlı ikinci bir bağımsız değişkeni alır. Bu options nesnesi aşağıdaki anahtarlardan birini veya daha fazlasını içerebilir:

frameURL
İncelenen sayfanın ana çerçevesi dışında bir çerçeve belirtmek için kullanın.
contextSecurityOrigin
Web kaynağına göre, belirtilen çerçevedeki bir bağlamı seçmek için kullanın.
useContentScriptContext
True (doğru) değerine ayarlanırsa komut dosyasını, uzantının içerik komut dosyalarıyla aynı bağlamda yürütün. (Bağlam güvenliği kaynağı olarak uzantının kendi web sitesini belirtmeye eşdeğerdir.) Bu, içerik komut dosyasıyla veri alışverişi yapmak için kullanılabilir.

Örnekler

Aşağıdaki kod, denetlenen sayfa tarafından kullanılan jQuery sürümünü kontrol eder:

chrome.devtools.inspectedWindow.eval(
  "jQuery.fn.jquery",
  function(result, isException) {
    if (isException) {
      console.log("the page is not using jQuery");
    } else {
      console.log("The page is using jQuery v" + result);
    }
  }
);

Bu API'yi denemek için chrome-extension-samples deposundan devtools API örneklerini yükleyin.

Türler

Resource

İncelenen sayfada bulunan bir doküman, komut dosyası veya resim gibi bir kaynak.

Özellikler

  • url

    dize

    Kaynağın URL'si.

  • getContent

    void

    Kaynağın içeriğini alır.

    getContent işlevi şu şekilde görünür:

    (callback: function)=> {...}

    • geri çağırma

      işlev

      callback parametresi şu şekilde görünür:

      (content: string,encoding: string)=>void

      • sayısını artırmak istiyoruz

        dize

        Kaynağın içeriği (potansiyel olarak kodlanmış).

      • kodlama

        dize

        İçerik kodlanmamışsa boş, aksi takdirde kodlama adı boş olur. Şu anda yalnızca base64 desteklenmektedir.

  • setContent

    void

    Kaynağın içeriğini ayarlar.

    setContent işlevi şu şekilde görünür:

    (content: string,commit: boolean,callback?: function)=> {...}

    • sayısını artırmak istiyoruz

      dize

      Kaynağın yeni içeriği. Şu anda yalnızca metin türüne sahip kaynaklar desteklenmektedir.

    • commit

      boolean

      Kullanıcı, kaynağı düzenlemeyi tamamlamışsa ve kaynağın yeni içeriğinin korunması gerekiyorsa true (doğru), kullanıcının kaynağı düzenleme işlemi devam ederken gönderilen küçük bir değişiklikse false (yanlış) değerini alır.

    • geri çağırma

      Functions (isteğe bağlı)

      callback parametresi şu şekilde görünür:

      (error?: object)=>void

      • hata

        isteğe bağlı

        Kaynak içeriği başarıyla ayarlanmışsa tanımsız değerine ayarlanır; aksi takdirde hatayı açıklar.

Özellikler

tabId

İncelenmekte olan sekmenin kimliği. Bu kimlik chrome.tabs ile kullanılabilir.* API.

Tür

sayı

Yöntemler

eval()

chrome.devtools.inspectedWindow.eval(
  expression: string,
  options?: object,
  callback?: function,
)

Bir JavaScript ifadesini, incelenen sayfanın ana çerçevesi bağlamında değerlendirir. İfade, JSON uyumlu bir nesne olarak değerlendirilmelidir, aksi takdirde istisna oluşur. Değerlendirme işlevi, Geliştirme Araçları tarafındaki bir hatayı veya değerlendirme sırasında ortaya çıkan bir JavaScript istisnasını bildirebilir. Her iki durumda da geri çağırmanın result parametresi undefined olur. Geliştirici Araçları tarafında bir hata oluşması durumunda, isException parametresi boş değildir ve isError doğru, code parametresi bir hata koduna ayarlanmıştır. JavaScript hatası olması durumunda isException doğru olarak, value değeri ise atılan nesnenin dize değerine ayarlanır.

Parametreler

  • ifade

    dize

    Değerlendirilecek ifade.

  • seçenekler

    isteğe bağlı

    Seçenekler parametresi bir veya daha fazla seçenek içerebilir.

    • frameURL

      string isteğe bağlı

      Belirtilirse ifade, URL'si belirtilenle eşleşen iframe'de değerlendirilir. Varsayılan olarak ifade, incelenen sayfanın üst çerçevesinde değerlendirilir.

    • scriptExecutionContext

      string isteğe bağlı

      Chrome 107 ve sonraki sürümler

      İfadeyi, belirtilen kaynakla eşleşen bir uzantının içerik komut dosyası bağlamında değerlendirin. Bu değer verilirsescriptExecutionContext, useContentScriptContext'te "true" ayarını geçersiz kılar.

    • useContentScriptContext

      boole isteğe bağlı

      İçerik komut dosyasının denetlenen sayfaya önceden eklenmiş olması şartıyla, ifadeyi, çağrı yapan uzantının içerik komut dosyası bağlamında değerlendirin. Aksi takdirde, ifade değerlendirilmez ve geri çağırma, istisna parametresi isError alanı true (doğru) ve code alanı E_NOTFOUND olarak ayarlanmış bir nesneye ayarlanmış olarak çağrılır.

  • geri çağırma

    Functions (isteğe bağlı)

    callback parametresi şu şekilde görünür:

    (result: object,exceptionInfo: object)=>void

    • sonuç

      nesne

      Değerlendirmenin sonucu.

    • exceptionInfo

      nesne

      İfade değerlendirilirken istisna oluşursa ayrıntıları sağlayan nesne.

      • kod

        dize

        Hata, ifade değerlendirilmeden önce Geliştirici Araçları tarafında oluşup oluşmadığını ayarlayın.

      • açıklama

        dize

        Hata, ifade değerlendirilmeden önce Geliştirici Araçları tarafında oluşup oluşmadığını ayarlayın.

      • ayrıntılar

        herhangi biri[]

        Hata, ifade değerlendirilmeden önce Geliştirici Araçları tarafında oluşmuşsa hatanın nedeni hakkında daha fazla bilgi sağlamak için açıklama dizesine eklenebilecek değer dizisini içerir.

      • isError

        boolean

        Hata, ifade değerlendirilmeden önce Geliştirici Araçları tarafında oluşup oluşmadığını ayarlayın.

      • isException

        boolean

        Değerlendirilen kod işlenmemiş bir istisna oluşturursa ayarlanır.

      • value

        dize

        Değerlendirilen kod işlenmemiş bir istisna oluşturursa ayarlanır.

getResources()

chrome.devtools.inspectedWindow.getResources(
  callback: function,
)

İncelenen sayfadan kaynak listesini alır.

Parametreler

  • geri çağırma

    işlev

    callback parametresi şu şekilde görünür:

    (resources: Resource[])=>void

    • şu adreste bulabilirsiniz:

      Sayfadaki kaynaklar.

reload()

chrome.devtools.inspectedWindow.reload(
  reloadOptions?: object,
)

İncelenen sayfayı yeniden yükler.

Parametreler

  • reloadOptions

    isteğe bağlı

    • ignoreCache

      boole isteğe bağlı

      Doğru değerine ayarlanırsa yükleyici, load etkinliği tetiklenmeden önce yüklenen, incelenen tüm sayfa kaynakları için önbelleği atlar. İşlem, denetlenen pencerede veya Geliştirici Araçları penceresinde Ctrl+Üst Karakter+R tuşlarına basmaya benzer.

    • injectedScript

      string isteğe bağlı

      Belirtilirse komut dosyası, denetlenen sayfanın her çerçevesine yüklenir yüklenmez çerçevenin komut dosyalarından önce eklenir. Komut dosyası, sonraki yeniden yükleme işlemlerinden sonra (örneğin, kullanıcı Ctrl+R tuşlarına bastığında) yerleştirilmez.

    • userAgent

      string isteğe bağlı

      Bu dize belirtilirse denetlenen sayfanın kaynakları yüklenirken gönderilen User-Agent HTTP üst bilgisinin değerini geçersiz kılar. Dize, incelenen sayfada çalışan komut dosyalarına döndürülen navigator.userAgent özelliğinin değerini de geçersiz kılar.

Etkinlikler

onResourceAdded

chrome.devtools.inspectedWindow.onResourceAdded.addListener(
  callback: function,
)

İncelenen sayfaya yeni bir kaynak eklendiğinde tetiklenir.

Parametreler

  • geri çağırma

    işlev

    callback parametresi şu şekilde görünür:

    (resource: Resource)=>void

onResourceContentCommitted

chrome.devtools.inspectedWindow.onResourceContentCommitted.addListener(
  callback: function,
)

Kaynağın yeni bir düzeltmesi yapıldığında tetiklenir (ör. kullanıcı, Geliştirici Araçları'nda kaynağın düzenlenmiş bir sürümünü kaydeder).

Parametreler

  • geri çağırma

    işlev

    callback parametresi şu şekilde görünür:

    (resource: Resource,content: string)=>void

    • kaynak
    • sayısını artırmak istiyoruz

      dize