Dalam pembangunan web, kadangkala kita perlu menghantar beberapa data antara halaman web yang berbeza Pada masa ini, kita boleh menggunakan HTML untuk menghantar nilai. Pemindahan nilai HTML ialah kaedah biasa, tetapi beberapa masalah juga mungkin dihadapi semasa penggunaan, seperti aksara bercelaru.
Cara biasa untuk menghantar nilai dalam HTML termasuk penghantaran parameter URL, penyerahan borang, kuki dan sesi, antaranya penghantaran parameter URL dan penyerahan borang adalah kaedah yang paling biasa digunakan. Pemindahan parameter URL adalah untuk memindahkan data antara halaman yang berbeza melalui URL. Sebagai contoh, kita boleh menggunakan kod berikut untuk menghantar parameter dalam halaman:
<a href="target.html?name=张三&age=20">传递参数</a>
Dalam halaman sasaran, kita boleh mendapatkan nilai parameter melalui JavaScript:
<script> var name = getQueryString("name"); var age = getQueryString("age"); function getQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null; } </script>
Dalam kod di atas, kami menggunakan JavaScript Gunakan kaedah ungkapan biasa untuk mendapatkan nilai parameter, dan gunakan kaedah unescape() untuk menyahkod aksara bercelaru.
Walau bagaimanapun, dalam pembangunan sebenar, kami mungkin menghadapi beberapa masalah kod bercelaru yang tidak dapat diselesaikan. Pada masa ini, kita perlu memikirkan penyelesaian.
Pertama, kita boleh cuba mengekod nilai parameter untuk mengelakkan aksara yang bercelaru. Terdapat dua kaedah pengekodan biasa, iaitu pengekodan URL dan pengekodan Base64.
Pengekodan URL menukar semua aksara khas kepada pengekodan format %xx, dengan "%xx" mewakili rentetan nilai kod ASCII heksadesimal aksara. Sebagai contoh, kita boleh menggunakan kaedah encodeURIComponent() JavaScript untuk mengekod URL parameter:
<a href="target.html?name=<%=encodeURIComponent('张三')%>&age=<%=encodeURIComponent('20')%>">传递参数</a>
Dalam halaman sasaran, kita boleh menggunakan kaedah decodeURIComponent() untuk menyahkod:
<script> var name = decodeURIComponent(getQueryString("name")); var age = decodeURIComponent(getQueryString("age")); function getQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null; } </script>
Pengekodan Base64 ialah akan melakukan penukaran Base64 data untuk mengelakkan aksara yang bercelaru. Sebagai contoh, kita boleh menggunakan kaedah btoa() JavaScript untuk mengekodkan parameter Base64:
<a href="target.html?name=<%=btoa('张三')%>&age=<%=btoa('20')%>">传递参数</a>
Dalam halaman sasaran, kita boleh menggunakan kaedah atob() untuk menyahkod:
<script> var name = atob(getQueryString("name")); var age = atob(getQueryString("age")); function getQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null; } </script>
Selain daripada pengekodan, kami juga Anda boleh menggunakan tag meta untuk menentukan kaedah pengekodan halaman, contohnya:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Di atas adalah beberapa kaedah untuk menyelesaikan masalah penghantaran nilai HTML yang bercelaru Anda perlu memilih yang sesuai kaedah mengikut situasi sebenar. Pada masa yang sama, kami juga perlu memberi perhatian untuk melindungi privasi pengguna dan mengelak daripada menghantar maklumat sensitif melalui URL.
Atas ialah kandungan terperinci html html lulus nilai kod kacau-bilau. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!