Apakah ada cara (mungkin asli?) Yang lebih sederhana untuk memasukkan file skrip eksternal dalam browser Google Chrome?
Saat ini saya melakukannya seperti ini:
document.head.innerHTML += '<script src="http://example.com/file.js"></script>';
javascript
google-chrome
console
include
teknokrake
sumber
sumber
Jawaban:
appendChild()
adalah cara yang lebih asli:sumber
TypeError: Property 'appendChild' of object #<HTMLHeadElement> is not a function
javascript_code
</code> untuk menyuntikkan kode javascript langsungApakah Anda menggunakan kerangka kerja AJAX? Menggunakan jQuery akan menjadi:
Jika Anda tidak menggunakan kerangka kerja apa pun maka lihat jawabannya oleh Harmen.
(Mungkin tidak layak menggunakan jQuery hanya untuk melakukan satu hal sederhana ini ( atau mungkin itu ) tetapi jika Anda sudah memilikinya dimuat maka Anda mungkin juga menggunakannya. Saya telah melihat situs web yang memuat jQuery misalnya dengan Bootstrap tetapi masih gunakan DOM API secara langsung dengan cara yang tidak selalu portabel, alih-alih menggunakan jQuery yang sudah dimuat untuk itu, dan banyak orang tidak menyadari fakta bahwa bahkan
getElementById()
tidak bekerja secara konsisten di semua browser - lihat jawaban ini untuk detailnya. )MEMPERBARUI:
Sudah bertahun-tahun sejak saya menulis jawaban ini dan saya pikir ada baiknya menunjukkan di sini bahwa hari ini Anda dapat menggunakan:
untuk memuat skrip secara dinamis. Itu mungkin relevan bagi orang yang membaca pertanyaan ini.
Lihat juga: Pembicaraan Fluent 2014 oleh Guy Bedford: Alur Kerja Praktis untuk Modul ES6 .
sumber
$.getScript('script.js');
atau$.getScript('../scripts/script.js');
kemudian itu relatif terhadap dokumen tetapi dapat memuat url absolut juga, misalnya.$.getScript('https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore.js');
Di browser modern, Anda dapat menggunakan fetch untuk mengunduh sumber daya ( Mozilla docs ) dan kemudian mengevaluasi untuk mengeksekusinya.
Misalnya untuk mengunduh Angular1, Anda perlu mengetik:
sumber
eval
, dengan pesan berikut:VM1929:11 Uncaught (in promise) EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:".
Di chrome, opsi terbaik Anda mungkin adalah tab Cuplikan di bawah Sumber di Alat Pengembang.
Ini akan memungkinkan Anda untuk menulis dan menjalankan kode, misalnya, di halaman about: blank.
Informasi lebih lanjut di sini: https://developers.google.com/web/tools/chrome-devtools/debug/snippets/?hl=id
sumber
Sebagai tindak lanjut dari jawaban @ maciej-bukowski di atas ^^^ , di peramban modern seperti yang sekarang (musim semi 2017) yang mendukung async / menunggu Anda dapat memuat sebagai berikut. Dalam contoh ini kita memuat pustaka load html2canvas:
Jika Anda menjalankan cuplikan dan kemudian membuka konsol peramban, Anda akan melihat fungsi html2canvas () sekarang telah ditentukan.
sumber
sumber
Jika ada yang gagal memuat karena skrip hes melanggar skrip-src "Kebijakan Keamanan Konten" atau "karena tidak aman-eval 'tidak diizinkan", saya akan menyarankan menggunakan modul-injektor saya yang sangat kecil sebagai cuplikan dev-tools, maka Anda akan dapat memuat seperti ini:
solusi ini berfungsi karena:
sumber
Saya menggunakan ini untuk memuat objek KO ko di konsol
atau tuan rumah secara lokal
sumber
Instal tampermonkey dan tambahkan UserScript berikut dengan satu (atau lebih)
@match
dengan url halaman tertentu (atau kecocokan semua halaman :)https://*
misalnya:Setiap kali Anda membutuhkan pustaka di konsol, atau pada cuplikan, aktifkan UserScript khusus dan segarkan.
Solusi ini mencegah polusi namespace . Anda dapat menggunakan ruang nama khusus untuk menghindari penimpaan variabel global yang ada di halaman secara tidak disengaja.
sumber