分析搜狗云输入法关键文件JS实现原理(2)
判断的逻辑有点复杂,但如果把这两个文件下载进行分析便得知,这两个文件内容是一样的,只是编码不同而已(一个是UTF-8,一个是GBK)
主要作用是根据网页编码来选择,避免乱码,但是这里的代码逻辑为何这么复杂呢(先判断是否为IE,然后判断IE8特有的document.documentMode属性,最后判断IE6+特有的document.charset)?
简单地说,IE6/IE7&&utf-8编码的采用utf-8编码的文件,其它的采用GBK编码文件,这样不禁就会联想到:在FF/chrome/IE8中,网页采用utf-8编码,下载脚本却是GBK编码,这样是否会存在问题呢?
实际测试的时候,当然没有问题了,但是浏览器怎么判断文件编码的呢,这里我没有查阅相关资料,但能猜到原理:
- 这个倒是需要相当的经验积累啊~~
最后,函数的最后三句是挺经典的动态载入脚本代码,可以封装成一个函数日后备用(缺点是不支持回调函数)。