1. Javascript函數(shù):encodeURI()
encodeURI()是Javascript中真正用來對(duì)URL編碼的函數(shù)。
它著眼于對(duì)整個(gè)URL進(jìn)行編碼叹螟,因此除了常見的符號(hào)以外魄宏,對(duì)其他一些在網(wǎng)址中有特殊含義的符號(hào)"; / ? : @ & = + $ , #"掖举,也不進(jìn)行編碼。編碼后,它輸出符號(hào)的utf-8形式塔次,并且在每個(gè)字節(jié)前加上%方篮。
它對(duì)應(yīng)的解碼函數(shù)是decodeURI()。
需要注意的是励负,它不對(duì)單引號(hào)'編碼藕溅。
2. Javascript函數(shù):encodeURIComponent()
最后一個(gè)Javascript編碼函數(shù)是encodeURIComponent()。與encodeURI()的區(qū)別是继榆,它用于對(duì)URL的組成部分進(jìn)行個(gè)別編碼巾表,而不用于對(duì)整個(gè)URL進(jìn)行編碼。
因此略吨,"; / ? : @ & = + $ , #"集币,這些在encodeURI()中不被編碼的符號(hào),在encodeURIComponent()中統(tǒng)統(tǒng)會(huì)被編碼翠忠。至于具體的編碼方法鞠苟,兩者是一樣。
它對(duì)應(yīng)的解碼函數(shù)是decodeURIComponent()秽之。
注:本文轉(zhuǎn)自阮一峰的網(wǎng)絡(luò)日志關(guān)于URL編碼中的第七当娱、八部分。
3. 瀏覽器類型識(shí)別
一般的通過userAgent判斷瀏覽器類型的方式并不準(zhǔn)確考榨,因?yàn)閯e人可以偽造跨细,所以有人提出了使用各個(gè)瀏覽器特有的字段來識(shí)別瀏覽器。按照上面的邏輯河质,別人也可以偽造字段添加到window或者document中冀惭。好的一點(diǎn)是,以下的方式一般人不會(huì)去刻意偽造其中使用到的字段掀鹅。
if (window.ActiveXObject)
return "IE";
else if (document.getBoxObjectFor)
return "Firefox";
else if (window.MessageEvent && !document.getBoxObjectFor)
return "Chrome";
else if (window.opera)
return "Opera";
else if (window.openDatabase)
return "Safari";