手机版

源码解读日本季刊日本季刊中浏览器兼容模块支持第1/2页

时间:2021-09-08 来源:互联网 编辑:宝哥软件园 浏览:

前言

jQuery的属性支持是判断浏览器之间是否兼容的模块,该模块包含了leadingWhitespace,tbody,htmlSerialize,style,hrefNormalized,不透明度,cssFloat,checkOn,optSelected,getSetAttribute…等兼容问题,所有的这些属性也只是jQuery内部会用到,因为日本季刊日本季刊内部一些模块需要对这些东西进行判断,就直接写成了一个支持模块,可以供我们,但是我们写代码的时基本都没用到啊,

今天再把这些玩意儿过一下,测试的浏览器为FF、CHROME、IE11、IE6-IE10是用IE11模拟的:

$ .支持。领先的hitespace 3354—— IE中自动去空格

$.support.checkOn —-chrome中收音机默认值为检查

$.support.tbody —-IE通过innerHTML自动生成tbody

$ .支持。html序列化标准浏览器会自动生成环标签

$.support.style—-IE67中getAttriute会获取各种类型的数据….

$.支持。不透明度——IE678不支持不透明

$.support.cssFloat —-cssFloat标准浏览器支持的,IE要用styleFloat

$ .支持。OptSelected浏览器并不会设置默认的选择权

$ .支持。getSetAttribute—-getSetAttribute在浏览器之间的兼容

$.support.html5Clone —-复制标签的问题

$.support.boxModel—是否支持盒模型

$.support.submitBubbles—-冒泡

$.support.changeBubbles—冒泡

$ .支持。focussionbubbles—-冒泡

$ .支持。删除扩展——工业工程的数字正射影像图元素是计算机输出缩微胶片组件,不能删除组件的属性

$.support.noCloneEvent —-复制元素的事件

$ .支持。reliablehiddenoffset———表元素中tr内任务描述的问题;

$ .支持。盒子大小—是否支持盒子大小

$ .支持。不要包含边界正文偏移——正文不会包含边缘的问题(算不算问题呢?)

$.support.pixelPosition —获取样式返回的是否是像素值

$ .支持。盒子大小-盒子大小是否可用

$ .支持。可靠边际右侧—镀铬中边缘的病菌

$ .支持。inlinblockneedslayout—-IE中布局的问题

$ .支持。shrinkwrapblock—-IE6中自动扩大宽高的问题

$ .支持。领先的hitespace属性

超文本标记语言头元字符集='utf-8' /标题兼容/标题/标题正文脚本类型=' text/JavaScript '窗口。l=(function(){ var El=document。创建元素(' div '),索引=0;埃尔。风格。CSS文本=' padd :10 px位置:固定;右上方:0 :0宽度:10%;border:1px实心# f00 ';返回函数(消息){ if(消息){ var span=document。创建元素(“span”);span.innerHTML=(索引) '信息" :br "消息”br”;埃尔。append child(span);};//IE低版本直接通过createElement创建的元素有parentNodeif(!埃尔。父节点| |(El。父节点。tostring()=='[object]'){ document。尸体。阑尾(El);};返回l;};})();/脚本IE678中自动过滤了元素前后的空格,而且空格不包含在子节点里面,脚本类型=' text/JavaScript ' var El=document。创建元素(' div ');埃尔。InnerHTML=' div id=\ ' null \ '/div ';l(El。子节点。长度);/脚本/正文/html标准浏览器中是遵守用户输入,el应该包含三个节点:[' ',' div id=\'null\' /div ',' ']节点;

IE678中却只有一个节点,这个节点就是那个DIV:

$.support.checkOn属性

标准浏览器中的检验盒默认价值为"开”,IE5678也都是"开",但是在某些webkit中检验盒的值默认为"'字符串,现在的浏览器版本都很高了,基本没有这个问题,如果你有铬低版本的话可以用下面这个演示测试看看有没有问题:

超文本标记语言头元字符集='utf-8' /标题兼容/标题/标题正文脚本类型=' text/JavaScript '窗口。l=(function(){ var El=document。创建元素(' div '),索引=0;埃尔。风格。CSS文本=' padd :10 px位置:固定;右上方:0 :0宽度:10%;border:1px实心# f00 ';返回函数(消息){消息=消息。tostring();if(message){ var span=document。创建元素(“span”);span.innerHTML=(索引) '信息" :br "消息”br”;埃尔。append child(span);};//IE低版本直接通过createElement创建的元素有parentNodeif(!埃尔。父节点| |(El。父节点。tostring()=='[object]'){ document。尸体。阑尾(El);};返回l;};})();/script输入id=' CK ' type=' checkbox '/script type=' text/JavaScript ' var El=document。getelementbyid(' CK ');//标准浏览器有变化事件;埃尔。onchange=function(){ l(El。值);l(ck.checked) } //IE中的万能事件propertychangeEl。onpropertytchange=function(){ l(El。值);(CK。选中)l(El。值);/script/body/html $。支持。t型车身属性

在IE6和IE7中新建桌子会自动创建tbody元素;

如果我们为创建的桌子添加tr或者添加td,那么所有的浏览器都会自动创建tbody

如果是动态创建的桌子和tr,把tr添加到tbody中,那么tbod根本不会出来,所有浏览器都遵循开发者的操作(浏览器的心思真的不好猜测啊)

超文本标记语言头元字符集='utf-8' /标题兼容/标题/标题正文脚本类型=' text/JavaScript '窗口。l=(function(){ var El=document。创建元素(' div '),索引=0;埃尔。风格。CSS文本=' padd :10 px位置:固定;右上方:0 :0宽度:10%;border:1px实心# f00 ';返回函数(消息){消息=消息。tostring();if(message){ var span=document。创建元素(“span”);span.innerHTML=(索引) '信息" :br "消息”br”;埃尔。append child(span);};//IE低版本直接通过createElement创建的元素有parentNodeif(!埃尔。父节点| |(El。父节点。tostring()=='[object]'){ document。尸体。阑尾(El);};返回l;};})();/script div id=' TB '/div div id=' tb2 '/div div id=' tb3 '/div script type=' text/JavaScript ' var El=document。getelementbyid(' TB ');埃尔。innerHTMl=' table/table '/IE67中会输出1, 标准浏览器遵循用户输入,不会是自动生成tbody,所以tobdy的长度是0升(El。getelementsbytagname(' t body ').长度);/script脚本var El=文档。getelementbyid(' tb2 ');埃尔。innerHTMl=' table t 111/tr/table ';//无论是标准还是IE67都会自动生成tbody标签l(El。getelementsbytagname(' t body ').长度);/script脚本var El=文档。getelementbyid(' tb3 ');埃尔。innerHTMl=' table d 111/TD/table ';//无论是标准还是IE67都会自动生成tbody标签l(El。getelementsbytagname(' t body ').长度);/script脚本var TB=文档。创建元素(“表”);var tr=文档。创建元素(' tr ');tr.innerHTML=' trtrtrTB。append child(tr);文件。getelementsbytagname(' body ')[0].追加子级(TB);/脚本/正文/html代码执行完毕以后你会看到,当桌子里没有元素的时候铬合金没有自动产生tbody,如果你不按照正常的写法写桌子,而是这样

平板电脑111/tr/table ';

产生的超文本标记语言变成这样“111tabletr/tr/table”,在日本季刊日本季刊中你这样写$(“平板电脑111/tr/table”),生成的超文本标记语言也是这样的['111 ',' tabletr/tr/table'],所以再三强调写超文本标记语言标签的嵌套要符合标准….

在工业管理学(工业工程)中又是例外一回事,通过innerHTML的方式会自动添加tbody,而且你标签嵌套错了他也不管你,通过附录子的方式跟其他浏览器一样不会主动生成tbody

$.support.htmlSerialize

IE678浏览器中不能够通过innerHTML动态生成环标签,要通过新建标签的形式创建:

超文本标记语言头元字符集='utf-8' /标题兼容/标题/标题正文脚本类型=' text/JavaScript '窗口。l=(function(){ var El=document。创建元素(' div '),索引=0;埃尔。风格。CSS文本=' padd :10 px位置:固定;右上方:0 :0宽度:10%;border:1px实心# f00 ';返回函数(消息){消息=消息。tostring();if(message){ var span=document。创建元素(“span”);span.innerHTML=(索引) '信息" :br "消息”br”;埃尔。append child(span);};//IE低版本直接通过createElement创建的元素有parentNodeif(!埃尔。父节点| |(El。父节点。tostring()=='[object]'){ document。尸体。阑尾(El);};返回l;};})();/script div class=' bounce animated infinite ' bounce/div div id=' link '/div script type=' text/JavaScript ' var ELink=document。GetElementByID(' link ');伊琳克。innerhtml=' link href=' http://cdn。bootscs。com/animate。CSS/3。3 .0/动画。CSS ' rel='样式表;/脚本/正文/html虽然环标签多数都可以通过innerHTML生成,但是我们要通过innerHTML生成脚本标签是不可行的:

12下一页阅读全文

版权声明:源码解读日本季刊日本季刊中浏览器兼容模块支持第1/2页是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。