refresh date: 2026-09-25 robots: noindex
Deskripsi
Gunakan chrome.devtools.inspectedWindow API untuk berinteraksi dengan jendela yang diperiksa: dapatkan ID tab untuk halaman yang diperiksa, evaluasi kode dalam konteks jendela yang diperiksa, muat ulang halaman, atau dapatkan daftar resource dalam halaman.
Manifes
Gunakan chrome.devtools.inspectedWindow untuk berinteraksi dengan jendela yang diperiksa: dapatkan ID tab untuk
halaman yang diperiksa, evaluasi kode dalam konteks jendela yang diperiksa, muat ulang halaman, atau dapatkan
daftar resource dalam halaman.
Lihat Ringkasan API DevTools untuk pengantar umum tentang penggunaan API Alat Developer.
Ringkasan
Properti tabId menyediakan ID tab yang dapat Anda gunakan dengan panggilan API chrome.tabs.*. Namun, perlu diperhatikan bahwa chrome.tabs.* API tidak ditampilkan ke halaman ekstensi
Alat Developer karena pertimbangan keamanan—Anda harus meneruskan ID tab ke halaman
latar belakang dan memanggil fungsi chrome.tabs.* API dari sana.
Metode reload dapat digunakan untuk memuat ulang halaman yang diperiksa. Selain itu, pemanggil dapat menentukan
penggantian untuk string agen pengguna, skrip yang akan dimasukkan di awal saat pemuatan halaman, atau
opsi untuk memaksa pemuatan ulang resource yang di-cache.
Gunakan panggilan getResources dan peristiwa onResourceContent untuk mendapatkan daftar resource
(dokumen, stylesheet, skrip, gambar, dll.) dalam halaman yang diperiksa. Metode getContent dan
setContent dari class Resource beserta peristiwa onResourceContentCommitted dapat
digunakan untuk mendukung modifikasi konten resource, misalnya, oleh editor eksternal.
Mengeksekusi Kode di Jendela yang Diperiksa
Metode eval memberikan kemampuan bagi ekstensi untuk mengeksekusi kode JavaScript dalam konteks
halaman yang diperiksa. Metode ini sangat efektif jika digunakan dalam konteks yang tepat dan berbahaya jika digunakan
secara tidak tepat. Gunakan metode tabs.executeScript kecuali jika Anda memerlukan fungsi khusus yang disediakan oleh metode eval.
Berikut adalah perbedaan utama antara metode eval dan tabs.executeScript:
- Metode
evaltidak menggunakan dunia terisolasi untuk kode yang sedang dievaluasi, sehingga status JavaScript jendela yang diperiksa dapat diakses oleh kode. Gunakan metode ini jika akses ke status JavaScript halaman yang diperiksa diperlukan. - Konteks eksekusi kode yang dievaluasi mencakup API konsol Developer Tools.
Misalnya, kode dapat menggunakan
inspectdan$0. - Kode yang dievaluasi dapat menampilkan nilai yang diteruskan ke callback ekstensi. Nilai yang ditampilkan harus berupa objek JSON yang valid (hanya boleh berisi jenis JavaScript primitif dan referensi asiklik ke objek JSON lainnya). Harap berhati-hati saat memproses data yang diterima dari halaman yang diperiksa—konteks eksekusi pada dasarnya dikontrol oleh halaman yang diperiksa; halaman berbahaya dapat memengaruhi data yang ditampilkan ke ekstensi.
Perhatikan bahwa halaman dapat menyertakan beberapa konteks eksekusi JavaScript yang berbeda. Setiap frame memiliki konteksnya sendiri, ditambah konteks tambahan untuk setiap ekstensi yang memiliki skrip konten yang berjalan dalam frame tersebut.
Secara default, metode eval dijalankan dalam konteks frame utama halaman yang diperiksa.
Metode eval menggunakan argumen kedua opsional yang dapat Anda gunakan untuk menentukan konteks evaluasi kode. Objek options ini dapat berisi satu atau beberapa kunci berikut:
frameURL- Gunakan untuk menentukan frame selain frame utama halaman yang diperiksa.
contextSecurityOrigin- Gunakan untuk memilih konteks dalam frame yang ditentukan sesuai dengan origin web-nya.
useContentScriptContext- Jika benar, jalankan skrip dalam konteks yang sama dengan skrip konten ekstensi. (Setara dengan menentukan origin web ekstensi itu sendiri sebagai origin keamanan konteks.) Hal ini dapat digunakan untuk bertukar data dengan skrip konten.
Contoh
Kode berikut memeriksa versi jQuery yang digunakan oleh halaman yang diperiksa:
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);
}
}
);
Untuk mencoba API ini, instal contoh API devtools dari repositori chrome-extension-samples.
Jenis
Resource
Resource dalam halaman yang diperiksa, seperti dokumen, skrip, atau gambar.
Properti
-
url
string
URL resource.
-
getContent
void
PromiseMendapatkan konten resource.
Fungsi
getContentterlihat seperti:(callback?: function) => {...}
-
callback
fungsi opsional
Parameter
callbackterlihat seperti:(response: object) => void
-
respons
objek
Chrome 151+Objek yang berisi konten resource dan encoding-nya.
-
konten
string
Konten resource (berpotensi dienkode).
-
encoding
string
Kosong jika konten tidak dienkode, jika tidak, nama encoding. Saat ini, hanya base64 yang didukung.
-
-
-
return
Promise<object>
Chrome 151+Fungsi yang menerima konten resource saat permintaan selesai.
Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.
-
-
setContent
void
PromiseMenetapkan konten resource.
Fungsi
setContentterlihat seperti:(content: string, commit: boolean, callback?: function) => {...}
-
konten
string
Konten baru resource. Saat ini, hanya resource dengan jenis teks yang didukung.
-
commit
boolean
Benar jika pengguna telah selesai mengedit resource, dan konten baru resource harus dipertahankan; salah jika ini adalah perubahan kecil yang dikirim saat pengguna mengedit resource.
-
callback
fungsi opsional
Parameter
callbackterlihat seperti:(error?: object) => void
-
error
objek opsional
Ditetapkan ke tidak ditentukan jika konten resource berhasil ditetapkan; jika tidak, akan menjelaskan error.
-
-
return
Promise<object>
Chrome 151+Fungsi yang dipanggil setelah penyelesaian permintaan.
Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.
-
Properti
tabId
ID tab yang sedang diperiksa. ID ini dapat digunakan dengan chrome.tabs.* Natural Language API.
Jenis
angka
Metode
eval()
chrome.devtools.inspectedWindow.eval(
expression: string,
options?: object,
callback?: function,
): Promise<object>
Mengevaluasi ekspresi JavaScript dalam konteks frame utama halaman yang diperiksa. Ekspresi harus dievaluasi ke objek yang sesuai dengan JSON, jika tidak, pengecualian akan ditampilkan. Fungsi eval dapat melaporkan error sisi DevTools atau pengecualian JavaScript yang terjadi selama evaluasi. Dalam kedua kasus tersebut, parameter result callback adalah undefined. Jika terjadi error di sisi DevTools, parameter isException tidak akan bernilai null dan memiliki isError yang ditetapkan ke true dan code yang ditetapkan ke kode error. Jika terjadi error JavaScript, isException ditetapkan ke true dan value ditetapkan ke nilai string objek yang ditampilkan.
Parameter
-
ekspresi
string
Ekspresi yang akan dievaluasi.
-
opsi
objek opsional
Parameter options dapat berisi satu atau beberapa opsi.
-
frameURL
string opsional
Jika ditentukan, ekspresi akan dievaluasi pada iframe yang URL-nya cocok dengan yang ditentukan. Secara default, ekspresi dievaluasi di frame teratas halaman yang diperiksa.
-
scriptExecutionContext
string opsional
Chrome 107+Mengevaluasi ekspresi dalam konteks skrip konten ekstensi yang cocok dengan origin yang ditentukan. Jika diberikan, scriptExecutionContext akan mengganti setelan 'true' di useContentScriptContext.
-
useContentScriptContext
boolean opsional
Mengevaluasi ekspresi dalam konteks skrip konten ekstensi panggilan, asalkan skrip konten sudah dimasukkan ke dalam halaman yang diperiksa. Jika tidak, ekspresi tidak akan dievaluasi dan callback akan dipanggil dengan parameter pengecualian yang ditetapkan ke objek yang memiliki kolom
isErroryang ditetapkan ke true dan kolomcodeyang ditetapkan keE_NOTFOUND.
-
-
callback
fungsi opsional
Parameter
callbackterlihat seperti:(response: object) => void
-
respons
objek
Chrome 151+Hasil evaluasi dan informasi pengecualian.
-
exceptionInfo
objek
Objek yang memberikan detail jika terjadi pengecualian saat mengevaluasi ekspresi.
-
kode
string
Ditetapkan jika error terjadi di sisi DevTools sebelum ekspresi dievaluasi.
-
deskripsi
string
Ditetapkan jika error terjadi di sisi DevTools sebelum ekspresi dievaluasi.
-
detail
any[]
Ditetapkan jika error terjadi di sisi DevTools sebelum ekspresi dievaluasi, berisi array nilai yang dapat diganti ke dalam string deskripsi untuk memberikan informasi selengkapnya tentang penyebab error.
-
isError
boolean
Ditetapkan jika error terjadi di sisi DevTools sebelum ekspresi dievaluasi.
-
isException
boolean
Ditetapkan jika kode yang dievaluasi menghasilkan pengecualian yang tidak tertangani.
-
nilai
string
Ditetapkan jika kode yang dievaluasi menghasilkan pengecualian yang tidak tertangani.
-
-
hasil
objek
Hasil evaluasi.
-
-
Hasil
-
Promise<object>
Chrome 151+Fungsi yang dipanggil saat evaluasi selesai.
Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.
getResources()
chrome.devtools.inspectedWindow.getResources(
callback?: function,
): Promise<Resource[]>
Mengambil daftar resource dari halaman yang diperiksa.
Parameter
Hasil
-
Promise<Resource[]>
Chrome 151+Fungsi yang menerima daftar resource saat permintaan selesai.
Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.
reload()
chrome.devtools.inspectedWindow.reload(
reloadOptions?: object,
): void
Memuat ulang halaman yang diperiksa.
Parameter
-
reloadOptions
objek opsional
-
ignoreCache
boolean opsional
Jika benar, loader akan mengabaikan cache untuk semua resource halaman yang diperiksa yang dimuat sebelum peristiwa
loaddiaktifkan. Efeknya mirip dengan menekan Ctrl+Shift+R di jendela yang diperiksa atau di dalam jendela Developer Tools. -
injectedScript
string opsional
Jika ditentukan, skrip akan dimasukkan ke dalam setiap frame halaman yang diperiksa segera setelah dimuat, sebelum skrip frame apa pun. Skrip tidak akan dimasukkan setelah pemuatan ulang berikutnya—misalnya, jika pengguna menekan Ctrl+R.
-
userAgent
string opsional
Jika ditentukan, string akan mengganti nilai header HTTP
User-Agentyang dikirim saat memuat resource halaman yang diperiksa. String ini juga akan mengganti nilai propertinavigator.userAgentyang ditampilkan ke skrip apa pun yang berjalan dalam halaman yang diperiksa.
-
Acara
onResourceAdded
chrome.devtools.inspectedWindow.onResourceAdded.addListener(
callback: function,
)
Diaktifkan saat resource baru ditambahkan ke halaman yang diperiksa.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:(resource: Resource) => void
-
resource
-
onResourceContentCommitted
chrome.devtools.inspectedWindow.onResourceContentCommitted.addListener(
callback: function,
)
Diaktifkan saat revisi baru resource di-commit (misalnya, pengguna menyimpan versi resource yang diedit di Alat Developer).