Pemuat ialah transformasi yang digunakan pada kod sumber modul atau skrip. Mereka membenarkan anda untuk pra-memproses fail atau html dengan javascript di dalam semasa anda mengimport atau "memuatkan" mereka. Oleh itu, pemuat adalah seperti "tugas" dalam alat binaan lain dan menyediakan cara yang berkuasa untuk mengendalikan langkah binaan bahagian hadapan.
Ideanya ialah untuk memuat turun program JS dan menjalankannya asli secara tempatan dalam pelayar masa jalan (webview2) dengan beberapa pengubahsuaian di dalamnya, berdasarkan skrip yang anda hantar sebelum ini. Saya memanggil ini kerahan berbilang sebagai lekapan:
const SINWAVES2URL= 'https://raw.githack.com/maxkleiner/maXbox4/master/assets/sinwavesjs.html'; aMS:= TMemoryStream.Create; try HttpGet(SINWAVES2URL, amS) writeln('urlcontent size: '+itoa((ams.size))); aMS.Seek(0, 0); memoHTML.lines.loadfromstream(aMs); //javascript fixture_ memoHTML.text:= StringReplace(memoHtml.text,'frequency = 20;','frequency = 30;',[rfReplaceAll]); memoHTML.text:= StringReplace(memoHtml.text,'Sine Wave</h3>','Sine Wave F30</h3>',[rfReplaceAll]); navigatetoString(memoHTML.text); finally aMS.Free end;
Sebagai contoh, anda boleh menggunakan pemuat untuk memberitahu tapak web untuk memuatkan CSS dengan fail javascript dan untuk mengubah suai parameter dalam JavaScript sebelum anda menjalankannya dalam paparan web penyemak imbas tempatan2.
Pemuat boleh dirantai. Setiap pemuat dalam rantaian menggunakan transformasi pada sumber yang diproses contohnya memuatkan url sebagai strim dalam memo dengan baris, ubah suai dua parameter (kekerapan dan tajuk dalam contoh kami) dan jalankannya dengan navigatetoString(memoHTML.text); pada penyemak imbas:
with TEdgeViewForm.create(self) do begin PageControl1.ActivePageIndex := 1; edit1.text:= SINWAVES2URL; aMS:= TMemoryStream.Create; try HttpGet(SINWAVES2URL, amS) writeln('urlcontent size: '+itoa((ams.size))); aMS.Seek(0, 0); memoHTML.lines.loadfromstream(aMs); //javascript fixture_ memoHTML.text:= StringReplace(memoHtml.text,'frequency = 20;','frequency = 30;',[rfReplaceAll]); memoHTML.text:= StringReplace(memoHtml.text,'Sine Wave</h3>','Sine Wave F30</h3>',[rfReplaceAll]); navigatetoString(memoHTML.text); finally aMS.Free end; showmodal free; end;
Atas ialah kandungan terperinci Pemuat JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!