分类目录归档:Javascript

Javascript

JS延迟加载

很多企业网站必须要挂上统计代码,客服代码,上午同代码等等js加载项,可是这些js大大影响了网页的性能,甚至很多网页出现半天打不开的现象,分析其原因,正式这节js加载项造成,网上搜集了js延迟加载的方法,做一下记录。可用性慢慢考证。

第一,JS延迟加载

继续阅读

21个展示jQuery特效

就在不久之前, Flash 是被web设计师用来为网站添加交互的重要技术之一!自从Ipad诞生, 并且不支持 Flash Player, 加速了web开发中使用其他技术代替flash,比如 jQuery, Ajax 还有其它。
尽管在很多情况下Flash在仍然是一个非常强大和有用的工具,web设计师习惯于用flash完成一些特效,但这些都能用jQuery轻松实现!下面有21 个在线的演示来显示jQuery在制作高级特效和交互方面的强大能力,可以媲美Flash!

继续阅读

页面引入JS文件IE6报错

昨天在调用一段外部js时候IEtester的IE6模式报错。说某函数is undefined。可是其他的浏览器均正常,最后终于发现是编码问题,使用文本文档令存为的时候选择一下与网页相符的编码就解决问题了。这个以后要注意了~

下面是网上搜集的一些相关资料。

解决“引入JS文件IE6报错”的问题

问题描述:页面引入一个js文件,其中定义了函数或对象,然后在页面中调用函数或对象时,在IE6会报“语法错误”或“缺少对象”。在IE6+或者IE7却运行正常。

问题分析:这个对象在引入的JS文件中是存在的,因为在IE6+以上的浏览器都可以正常运行。这个问题在于文件编码上,如果JS文件编码与当前页面的编码不一致,就可能导致在IE6中页面不能正常获取和解析JS文件中的内容,在IE6中,默认引入的文件和页面的编码是一致的。在IE6+以上的浏览器中,一般浏览器会自动识别每个外部文件的编码并进行解析;

问题解决:
   一:引入js文件时加charset属性,保持与页面编码一致;
   二:修改引入文件编码格式;
   三:新建一个文件格式同页面编码格式一致,复制粘贴内容;
(个人建议第三种方法,但建议在导入js时加上charset属性!)

div设置float后,高度问题

如果一个div没有闭合(清除)浮动元素,它将造成的后果是—–div的高度不能自动增加。

目前用来清除“闭合(清除)浮动”的方法,主要是一下四种:

1. 额外标签法

这种方法就是向父容器的末尾再插入一个额外的标签,并令其清除浮动(clear)以撑大父容器。这种方法浏览器兼容性好,没有什么问题,缺点就是需要额外的(而且通常是无语义的)标签。
我个人不喜欢这种方法,但是它确实是W3C推荐的方法

程序代码
<div style=”clear:both;”></div>
或者使用
程序代码
<br style=”clear:both;” />

2. 使用after伪类

这种方法就是对父容器使用after伪类和内容声明在指定的现在内容末尾添加新的内容。经常的做法就是添加一个“点”,因为它比较小不太引人注意。然后我们再利用它来清除浮动(闭合浮动元素),并隐藏这个内容。
这种方法兼容性一般,但经过各种 hack 也可以应付不同浏览器了,同时又可以保证html 比较干净,所以用得还是比较多的。

继续阅读

让IE6更快的走向灭亡

最近关于浏览器的最重要的事情就是IE的极光0day漏洞了,这个漏洞导致包括Google在内的多家美国公司受到黑客的攻击,当然也有很多色情网站被黑客利用,从而使用户受到严重的攻击,而IE6用户首当其冲,成为该漏洞的最大受害者。

其实我们天天在想到底哪一天IE6才会真正死去,但是从2001年发布以来,IE6一直统治着国内的浏览器市场,直到现在还占据着国内50%以上的浏览器市场份额。

  1. 你和你的公司正在受到安全威胁。这个没有更好的理由来反驳了吧?就连国际知名的大公司如Google、yahoo等都因为使用IE6而受到严重攻击,还有哪家公司的IE6不会受到攻击呢?
  2. 世界上各国政府都在建议大家升级浏览器。在IE6的0day漏洞被曝光之后,德国、法国和澳大利亚等国政府纷纷号召国民放弃使用IE6;
  3. 就连微软自己都建议你放弃IE6。微软安全研究与预防博客发文称,IE6受0day漏洞影响最为严重,IE8基本不受该漏洞影响。事实上,微软也不止一次号召用户升级浏览器。
  4. 这不是IE6的最后一个严重安全漏洞。IE6从发布到现在不知道出现过多少严重的安全漏洞,而这次远不是终结,它还有至少144个漏洞
  5. 微软在2014年之后将不再对IE6提供支持。2014年很久远吗?或者你相信2012年就是世界末日?
  6. IE6对web标准的支持缺乏。IE6的技术还是10年前的,互联网技术经过10年的发展已经能够发生了巨大的改变,网站前端技术在不断进步,更先进的CSS、HTML和Javascript等技术已经能给用户带来更好的体验——而IE6用户将无法体验这些先进的内容。比如,前端观察用到的一些CSS3特性将无法在IE6甚至是IE8中体验到。
  7. 国内的一部分企业开始要求员工升级浏览器。比如腾讯公司,已经要求所有员工将IE6升级到IE7。
  8. IE6太过时了,国外网友大部分都不再使用IE6了。统计显示,目前国外用户已经逐渐淘汰IE6了。IE8和Firefox是主流(via 人民网)。
  9. 国外各大网站开始明确表示将不再支持IE6。比如 Google 将停止支持IE 6 用户必须至少升至IE 7

(部分参考自:http://mashable.com/2010/01/18/5-more-reasons-why-ie6-must-die/)

如果这几个理由都不够,那么请看国外统计的坚持使用IE6的原因,当然这里有些调侃的意味,如果你正好是其中一种情况,请不要生气 🙂 :

当然在国内,坚持使用IE6的用户可能还是因为另外两个原因:

  1. 习惯了IE6的操作方式,不喜欢IE7和其它浏览器的tab式浏览。当然一个人的习惯是最重要的。tab的浏览器方式是谁发明的已经不可考了,不过Opera和Firefox纷纷使用,后来国内的maxthon浏览器也采用了那种方式,然后到06年IE7的时候,也采用了tab的方式。这说明tab是一种很好的浏览方式,高效、方便,不然广大网民早就开始反对这种方式了,而各大浏览器也不会坚持下去了。所以建议你尝试一下新技术,从你的习惯中走出来。
  2. IE6比较快,IE7和IE8太慢了。IE7和IE8的确太慢了,不过新版的Firefox 3.6和Chrome一直是很快的哦。

前端开发人员可以争取放弃兼容IE6

如果你是一名光荣的前端开发人员,希望你能尽可能的做更多的事情来让IE6更快的死去:

  1. 以身作则,自己放弃IE6。从前端观察和其它技术网站的访问统计上看,IE6的用户比例竟然还有30%以上,这让我很震惊。作为一名前端开发者,用IE6做自己的主浏览器,那么你做的网站应该也不会在IE7/8以及其它更先进的浏览器中做测试的吧?
  2. 说服你的BOSS或客户,放弃兼容IE6。有必要为了让网站在IE6中和其它浏览器中表现一直而花掉2倍甚至是3倍的时间和精力吗?我认为对不同的浏览器,可以采取适当的区分——让网站在现代浏览器如Firefox 3.5+、Chrome/Safari和Opera中实现最佳的表现,而在IE中实现相对比较差的界面——当然在不影响布局和功能的情况下。
  3. 号召你的朋友弃用IE6。号召你身边的朋友使用IE7/8或者Firefox、Chrome等浏览器。另外,很多人都有个人博客,可以在自己的博客上号召IE6用户升级他们的浏览器。你也可以参与到众多的促进IE6升级的在线项目中来,比如 webrebuild.org的IE6升级活动以及效果很不错的IE6 Update中。

浏览器厂商应该负更多的责任

想起的一句话:此地钱多人傻,速来!这当然只是笑话。

不过据说现在中国网民数量已经高达3.6亿!而且这个数字还在不断增长。这显然是一个巨大的市场。

所以最近各大公司纷纷涉足浏览器市场,各自都推出自有品牌的浏览器,在Maxthon、世界之窗、腾讯TT、绿色浏览器等混战多年的情况下又出现搜狐浏览器、新浪浏览器和360浏览器。但是它们无一不是以IE为内核的(maxthon和搜狐浏览器有IE和webkit双内核的版本),没有自己的内核。所以各位网民,不要以为你用了所谓“安全”浏览器你的电脑就安全了,它的内核IE本身都是不安全的,这些外壳浏览器谈何安全——不过有些浏览器会添加一些可以避免你误操作的功能。

对国内的浏览器市场来说,我认为这种“战国纷争”的局面是很不错的,至少能够普及一点儿“浏览器”知识,提高网民对互联网和互联网安全的认识。

但是我认为国内的浏览器厂商应该负起更多的责任。

你们的浏览器产品确实有很多特色,也有很多很有用或者很酷的功能,比较重视中国人的使用习惯。但是当用户因为IE的漏洞而被攻击的时候,你们会承担责任吗?还是将责任推到微软那里?这似乎有些不公平哦~~

对IE来说,最安全的、功能最强、稳定性最好的应该就是IE8了,如果你们能够推动用户去升级他们的内核到最新版,肯定能降低你们要为安全承担的风险。另外,减少一个内核支持也会减少你们的开发和维护支出吧。

总结

让IE6退出历史舞台,不是一朝一夕的事情,用户的惰性让他不愿意主动去升级,微软的浏览器升级模式又那么古老(而Firefox的提示升级和Chrome的后台自动升级模式倒省去了不少麻烦)。所以我们只有靠自己的力量来推动IE6的灭亡了。