JavaScript程序片段

1. Javascript函数:encodeURI()

encodeURI()是Javascript中真正用来对URL编码的函数。
它着眼于对整个URL进行编码,因此除了常见的符号以外,对其他一些在网址中有特殊含义的符号"; / ? : @ & = + $ , #",也不进行编码。编码后,它输出符号的utf-8形式,并且在每个字节前加上%。


JavaScript程序片段_第1张图片
encodeURI编码

它对应的解码函数是decodeURI()。


JavaScript程序片段_第2张图片
decodeURI编码

需要注意的是,它不对单引号'编码。

2. Javascript函数:encodeURIComponent()

最后一个Javascript编码函数是encodeURIComponent()。与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。
因此,"; / ? : @ & = + $ , #",这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。至于具体的编码方法,两者是一样。


JavaScript程序片段_第3张图片
encodeURIComponent和encodeURI的比较

它对应的解码函数是decodeURIComponent()。

注:本文转自阮一峰的网络日志关于URL编码中的第七、八部分。

3. 浏览器类型识别

一般的通过userAgent判断浏览器类型的方式并不准确,因为别人可以伪造,所以有人提出了使用各个浏览器特有的字段来识别浏览器。按照上面的逻辑,别人也可以伪造字段添加到window或者document中。好的一点是,以下的方式一般人不会去刻意伪造其中使用到的字段。

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";

你可能感兴趣的:(JavaScript程序片段)