JavaScript程序片段

1. Javascript函数:encodeURI()

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


encodeURI编码

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


decodeURI编码

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

2. Javascript函数:encodeURIComponent()

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


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";
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,123评论 19 139
  • 2012年7月15日 普罗旺斯依旧美好,它的大部分土地依然空旷寂寥,荒无人烟。在山谷的上空依然飘荡着平和宁静的气氛...
    疯狂的李小鱼阅读 572评论 0 1