Rumah > hujung hadapan web > tutorial js > Menghantar parameter ke fail js (penjelasan terperinci)_kemahiran javascript

Menghantar parameter ke fail js (penjelasan terperinci)_kemahiran javascript

WBOY
Lepaskan: 2016-05-16 16:42:07
asal
1580 orang telah melayarinya

1. Gunakan pembolehubah global

Ini adalah cara paling mudah, seperti Google Adsense:

Salin kod Kod adalah seperti berikut:


Kelemahannya ialah pembolehubah global diperkenalkan. Terdapat dua varian cara memperkenalkan fail:

// 变体1:用document.write输出
 <script type="text/javascript"> google_ga_id ='g6u7un8646xx'; 
document.write(unescape('%3Cscript type="text/javascript" src= "http://www.m.sbmmt.com/ga.js"%3E%3C/script%3E')); </script> 
// 变体2:用DOM操作append到head里 
<script type="text/javascript"> 
G_BEACON_ATP ='category=&userid=&channel=112ad_id=';
 document.getElementsByTagName('head')[0].appendChild(document. createElement('script')).src='http://taobao.com/atp.js'; 
</script> // 注意:上面的代码是根据实际应用虚拟的示范代码

Salin selepas log masuk

Nota: Varian 1 mempunyai banyak aplikasi Kaedah penulisan biasa adalah seperti berikut:

<script type="text/javascript"> 
// 直接转义即可: 
document.write('<script type="text/javascript" src="test.js"></script>'); 
// 或者像Yahoo!首页一样: 
document.write('<scr'+'ipt type="text/javascript" src="test.js"></scr'+'ipt>');
</script>

Salin selepas log masuk

2. Dapatkan dan huraikan src elemen skrip

Berbanding dengan semua pembolehubah, kami lebih suka memasukkan parameter seperti berikut:

Masalah utama ialah cara mendapatkan atribut src.

Kaedah pertama ialah menambah atribut id pada skrip, dapatkan skrip semasa melalui id, dan kemudian gunakan ungkapan biasa untuk mengekstrak parameter daripada src. Kelemahannya ialah dalam Spesifikasi HTML 4.01, elemen SCRIPT tidak mempunyai atribut id. Kekurangan ini bukan kekurangan Lagipun, lebih baik percaya pada piawaian daripada tidak mempunyai piawaian.

Kaedah 2 ialah menggunakan nama fail js sebagai cangkuk Selepas menghantar document.getElementsByTagName('script') dalam kod js, fail js semasa akan dipadankan dengan ungkapan biasa. Kaedah ini sangat ortodoks, tetapi memerlukan nama fail yang unik. Kelemahannya ialah terdapat banyak kod, ia tidak diperhalusi, dan ia mempunyai sedikit kesan terhadap prestasi.

Kaedah tiga adalah berdasarkan kaedah satu, cuma tambah data atribut tersuai:

Dalam fail test.js, dapatkan parameter masuk melalui baris berikut:

var scriptArgs = document.getElementById('testScript').getAttribute('data'); Kaedah keempat ialah menggunakan mekanisme pelaksanaan berurutan bagi js (fail js boleh dimuatkan secara serentak atau tidak segerak, tetapi apabila dilaksanakan, ia mesti mengikut dilaksanakan secara berurutan dalam aliran dokumen). Apabila fail js dilaksanakan, ia mestilah yang terakhir antara fail js yang "dimuatkan":

skrip var = document.getElementsByTagName('script'); var currentScript = scripts[scripts.length - 1];Kaedah 4 lebih bijak dan genius daripada kaedah 2.

Dari segi penyederhanaan kod dan prestasi, kaedah tiga >

Ringkasan: Jika anda mengambil berat tentang piawaian, kami mengesyorkan kaedah empat; jika, seperti saya, anda tidak merasakan keperluan untuk mematuhi piawaian sepenuhnya, kami mengesyorkan kaedah tiga.

Tulis program ujian

<!DOCTYPE html>
<html>
<script src="a2.js">
</script>
<script src="a2.js">
</script>
<script src="a2.js">
</script>
</html>

Salin selepas log masuk
a2.js

skrip var = document.getElementsByTagName('script'); var currentScript = scripts.length;alert(currentScript);

Cetak secara berasingan

1 2 3

3. Pelan Inspirasi

Jika anda peminat setia John Resig seperti saya, anda mungkin masih ingat "Tag Skrip Merendahkan" yang sangat diperkatakan pada Ogos tahun lalu. John Resig membuka pintu imaginasi untuk kita Untuk masalah artikel ini, kita juga boleh menggunakan "cara jahat" berikut untuk menyelesaikannya:

Dalam fail js:

var scripts = document.getElementsByTagName("script"); 
var scriptArgs = scripts[ scripts.length - 1 ].innerHTML.replace(/[s]/g, '');

Salin selepas log masuk
Imaginasi tidak berkesudahan, anda juga boleh menggunakan onload:

Hanya tentukan fungsi dalam fail js:

TB = {}; 
TB.SomeFun = function(arg) { 
//code
};

Salin selepas log masuk
Kod di atas boleh dijalankan dengan betul dalam pelayar bukan IE. Untuk IE bodoh, anda perlu menambah beberapa baris kod:

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan