Skrip Dinamik
Kami boleh memasukkan kod javascript ke dalam halaman dengan menggunakan elemen
Kod JavaScript luaran yang dimuatkan secara dinamik boleh dilaksanakan serta-merta, seperti kod berikut:
var script = document.createElement("script"); script.type = "text/javascript"; script.src = "demo.js"; document.body.appendChild(script);
Seperti yang anda lihat daripada hasil di atas, kod di atas menghasilkan
<script type="text/javascript" src="demo.js"></script>
Cara lain untuk menentukan kod JavaScript adalah sebaris, contohnya:
var script = document.createElement("script"); script.type = "text/javascript"; script.appendChild(document.createTextNode("function fn1(){alert('hello wolrd!')} fn1();")); document.body.appendChild(script);
Kod di atas akan memasukkan sekeping kod JavaScript dalam elemen :
<script type="text/javascript"> function fn1(){alert('hello wolrd!')} fn1(); </script>
Dalam pelayar Firefox, Safari, Chrome dan Opera, kod DOM yang dikendalikan di atas boleh dilaksanakan seperti biasa. Tetapi dalam versi pelayar IE yang lebih lama, kod ini akan menyebabkan ralat. Versi lama pelayar IE menganggap elemen
var script = document.createElement("script"); script.type = "text/javascript"; script.text("function fn1(){alert('hello wolrd!')} fn1();"); document.body.appendChild(script);
var script = document.createElement("script"); script.type = "text/javascript"; var code = "function fn1(){alert('hello wolrd!')} fn1();"; try{ script.appendChild(document.createTextNode(code)); }catch(e){ script.text = code; }
Kami boleh merangkum kod untuk menambahkan skrip secara dinamik ke dalam fungsi dan memuatkan skrip berbeza secara dinamik melalui parameter berbeza.
function loadScript(code){ var script = document.createElement("script"); script.type = "text/javascript"; try{ script.appendChild(document.createTextNode(code)); }catch(e){ script.text = code; } document.body.appendChild(script); }
loadScript("function fn1(){alert('hello wolrd!')}");
Gaya Dinamik
Biasanya terdapat dua elemen yang boleh memasukkan gaya CSS ke dalam halaman HTML: satu ialah elemen
var link = document.createElement("link"); link.rel = "stylesheet" link.type = "text/css"; link.href = "styles.css"; var head = document.getElementsByTagName("head")[0];
Kod di atas boleh berjalan seperti biasa dalam semua pelayar utama. Perlu diingat bahawa elemen
Perkara lain yang perlu diambil perhatian ialah proses memuatkan fail gaya luaran adalah tidak segerak, yang bermaksud tiada susunan tetap dalam proses memuatkan gaya dan melaksanakan kod JavaScript.
Cara lain untuk menentukan gaya ialah menggunakan elemen
var style = document.createElement("style"); style.type = "text/css"; style.appendChild(document.createTextNode("body{background:#f00;}")); var head = document.getElementsByTagName("head")[0]; head.appendChild(link);
以上的代码可以在Firefox、Safari、Chrome和Opera浏览器中正常运行,在旧版本的IE浏览器中会报错。旧版本的IE浏览器会将