Ascensor.js中的non-break space

Ascensor.js


        最近是暑假,虽然有大作业要做,开学就Deadline了,但是已经有点破罐子破摔的觉悟了。于是最近就没有在写代码,而是在不停玩耍。前天在github上看到了这个jquery的插件,就很感兴趣。他的git地址在这里,而官方主页在这里。其大致的作用就是Web幻灯片,可以把幻灯片用写Html的方式写出来。它的依赖只有jquery和一个自己的js文件,还是十分简洁的,用起来也十分地简单,推荐一试。

文件中的不换行空格


        虽然这个jquery插件非常好用,但是在它的源码之中有一点点的编码问题。而这个问题确实是很难发现的。一开始,由于看这个插件的教程发现使用非常地简单,于是就直接写了一个Demo,结果chrome报错如下:



        报错并不是发生在我的代码里,而是在作者的js文件中。关键词function后面多了一个类似A的字符,正是这个A造成了问题。那把这个A删除不就解决问题了嘛~但是,当把作者的js文件用sublime-text打开后:



        这就是奇怪的地方,在sublime-text下打开文件,却并没有发现任何一个地方有chrome显示的类似A的字符。不过我们选中function后面的两个空格后,发现了一些端倪。



        仔细看的话,就可以发现,这两个空格并非完全一样的。在sublime-text里,被选中的空格中间会出现一个小点,以证明这的确是一个标准的空格。而在被选中的两个空格中,第一个空格并无小点出现。当我们用古老的vim打开文件后,两者之间的差异就更加明显了。



        第一个空格变成了一个繁体字~真是奇怪哦。当做到这一步时,这个空格的来历就受到了怀疑。于是就去查了下这个字符的unicode编码,果然发现了他与标准空格的不同之处。他被称作不换行空格,维基百科对它有解释,在这里
        编辑器一般会把自动换行放在空格字符处。但是,有些文本内容在排版时不适合被放在连续的一行行尾与下一行行首。例如:“100 km”,就不应该在其中间的那个空格处换行。所以编辑器应该在"100"与"km"之间放置一个“不换行空格”,使得"100 km"是不可断开换行的,如果它不适合在行尾的剩余排版空间,就整体排版到下一行行首。
        不过在我们代码中,最好使用标准空格,不然就会出现各种奇奇怪怪的问题。。。

延伸


        把文件中所有的不换行空格换成标准空格后,就可以正常地使用插件了。unicode中有各种各样奇奇怪怪的空格,很是烦人。其中有一个堪称烦人之最的零宽度空格,感兴趣地可以去看看这篇博文。不过据一个同学说,零宽度空格可以用来反和谐,比如你想打‘政’‘府‘,可能是被和谐的,但是在中间加一个零宽度空格,看起来没有任何改变,但是可能就没有被和谐。不知道反和谐的意思是不是这样理解=-=
        最后,你问我支不支持和谐,我说支持,我就明确告诉你这一点。2333

PS


        =-=日志算是白写了,在发现这问题后向git提交了一个issue,作者kirkas已经去掉了原本的不换行空格。真是。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值