对于每个人来说,做出不同的项目,最终的感觉都是不一样的。如今头条横行,根据公司需要,我也需要去开发一款页面端的头条。
用到的一些插件和iframe窗体,插件是swiper和xscroll
代码并没有什么可读性,只是希望通过总结对这些东西的应用的程度,
遇到的坑:
在一个页面中如果想嵌套子页面,大家应该都应该能想到iframe,的确对于曾经是很疯狂的应用,不过后来因为一些iframe本身的缺陷,因此出于安全性的考虑,如今渐渐的淡出的大家的视角。
首页简单的介绍一下iframe:对于这种网上说的浮动帧的专业术语,对于差劲的我来说感觉很是多余。我只想知道他就是子窗体与父窗体的区别。
用法也就不多介绍了,很简单,说2个小方面的东西:
方法:src可以是任意的文件或者图片和网页的路径,可以窗体内禁止滚动,可以显示一个页面内的指定区域,可以修改iframe中任何的元素已经系统元素比如滚动条,
iframe注意事项:
iframe内部独立构造,在iframe内获取window对象只能获取到当前iframe内的对象,获取父页面的方法只需在方法前面加上parent,就可以了,必须parent.window就找到的是父元素的window对象,父页面控制子页面只用document.frames(iframe的name),然后也可以直接用找,比如ducument.frames('myiframe').document.getElementsByTagName('body')[0].就能找到iframe的body元素,然后如何判断是否在iframe内部还是外部,可以根据window.frames.length和parent.frames.length来进行判断。
坑:
首先我要说明的一点是,在iframe中,显示都是正常的,但是在微信中,页面加载iframe内部的图片和文字都是不可被复制的,就是这一个问题一直纠结了我半天的时间,我真的没话可说,最终还是放弃了这个工作,因为在微信中,微信的自别识别二维码机制,对于我还是很必要的,因此图片的识别对于我来说是必须去做的一部,最终得出的结论是iframe是受微信的安全限制。防止挂马入侵,因此组织的很多事件的默认行为,对于有更好的方法的大牛希望能留言和我讨论一下。赶紧不尽。
其次对于单页面应用中,在没有定于路由和控制器的时候,也就是在不用任何框架的情况下,我如果需要控制页面的前进后退,实现页面的后退回到原来位置。。在纯页面和iframe的情况下。我找到了一个很好的h5的api 就是history.pushState,其实他本事的意义并不是很重要,但是对于这种需要前进后退的功能,就显的尤为重要,,浏览器和手机的后退机制都是根据页面的url进行判断和加载后退,这个属性完美的解决了页面的url变更问题,不了解的请自行了解一下。3个参数,一个定制对于下个页面的留存值,你可以根据window.onpopstate(e)的本身方法,e.state来获取到你设定的第一个对象,第二个不多说了一般为null,第三个就是根据你域名的展现的后面的url,使你看起来链接灰常的高大上。
至此,单页面的应用基本上思路就说完了,
最后评价一下xscroll和iscroll,整体来说,我并不喜欢xscroll的方法,并不是很实用,并且相对于iscroll来说有点重,压缩后的50多k,并且文档也不是很清楚,iscroll虽说很久没有更新了,不过我感觉对于手机端的滑动优化写的也很不错了,iscroll使用起来更容易,逻辑更简单一些,不过其实也是根据个人的用法,
菜鸟表示遇到的一个插件的问题,就是对于一个华东加载的插件,一般是分为3层或者2层,最外层或者次外层的元素必须浮动元素。因为如果让页面整体滚动的话,会出现很多不可控性。因此在使用此类插件的时候一定要注意这个问题,要么插件本身会给出限制,要么就需要自己去手动增加样式。要不然出现问题,你会发现和很多api都对不上号。
给自己一点点总结的时间,让下次开发少花一点时间。