Prefácio
O suporte de atributos da JQuery é um módulo que determina se os navegadores são compatíveis. This module contains compatibility issues such as leadingWhitespace, tbody, htmlSerialize, style, hrefNormalized, opacity, cssFloat, checkOn, optSelected, getSetAttribute.... All these attributes are only used within jQuery, because some modules within jQ need to judge these things, so they are directly written into a support module, which can be used for us, but we basically didn't use them when we wrote o código.
Hoje vou revisar essas coisas. Os navegadores testados são FF, Chrome, IE11 e IE6-II10 são simulados usando o IE11:
$ .support.leadingwhitespace - - remova automaticamente os espaços no IE
$ .support.checkon -O valor padrão do rádio no Chrome é checkon
$ .support.tbody ―-ie gera automaticamente o corpo através do inerhtml
$ .support.htmlSerialize - O navegador padrão gerará automaticamente tags de link
$ .support.style ―-ie67 getattriute receberá vários tipos de dados ....
$ .support.Opacity ―- IE678 não suporta opacidade
$ .support.cssfloat --Suportado pelo navegador padrão do cssfloat, ou seja, deve usar o stylefloat
$ .support.OPTSELECT - O navegador não define a opção padrão
$ .support.getSetAttribute -Compatibilidade do-getSetattribute entre navegadores
$ .support.html5clone - - edição de copiar tags
$ .support.boxmodel - Se deve suportar o modelo da caixa
$ .support.submitbubbles -bubble
$ .support.ChangeBubbles -Bubble
$ .support.focusinbubbles -bubble
$ .support.deleteexpando - O elemento DOM do Ai é um componente COM e não pode excluir os atributos do componente.
$ .support.nocloneEvent - evento para copiar o elemento
$ .support.reliableHoNDoffSets - O problema do TD no TR no elemento da tabela;
$ .support.boxSizing - Se o BoxSizing é suportado
$ .support.doesNotincludemargininBodyOffset -O corpo não contém margem (é um problema?)
$ .support.pixelPosition - obtém se o valor do pixel retornou pelo estilo
$ .support.BoxIdingReliable "-está disponível Boxsizing
$ .support.reliablearginright - - O bug na margem no Chrome
$ .support.inlineBlockNeedsLayout - - Problema com o layout no IE
$ .support.shrinkwrapblocks - - O problema de expandir automaticamente a largura e a altura no IE6
$ .support.leadingwhitespace Propriedade
<html> <head> <meta charset = "utf-8"/> <titter> compatível "Prendimento: 10px; Posição: TOPO: 0; CreateElement na versão inferior inclui parentnode; </script> IE678 filtra automaticamente os espaços antes e depois do elemento, e os espaços não estão incluídos nos ChildNodes, <script type = "text/javascript"> var el = document.createElement ("div"); el.innerhtml = "<div id =/" null/"> </div>"; l (el.childnodes.length); </script> </body> </html>Os navegadores padrão aderem à entrada do usuário e o EL deve conter três nós : ["", "<div id =/" null/"> </div>", ""] nó;
Existe apenas 1 nó no IE678, e este nó é o div:
Propriedade $ .Support.CHECKON
O valor padrão da caixa de seleção nos navegadores padrão está "ON", e o IE5678 também está "on", mas em algumas webkits, o valor da caixa de seleção Padrões para "" String e a versão atual do navegador é muito alta, basicamente não há problema. Se você tem uma versão baixa do Chrome, pode usar a demonstração a seguir para testar se há algum problema:
<html> <head> <meta charset = "utf-8"/> <titter> compatível "Prendimento: 10px; Posição: Criado; 0; }; </script> <input id = "ck" type = 'caixa de seleção'/> <script type = "text/javascript"> var el = document.getElementById ("ck"); // O navegador padrão tem um evento de mudança; el.onchange = function () {l (el.value); l (CK.CHECKED)} // O Universal Event PropertyChange no IE; el.onPropertyChange = function () {l (el.value); l (CK.CHECKED)} L (El.Value); </script> </body> </html>$ .support.tbody Propriedade
Crie uma nova tabela no IE6 e o IE7 criará automaticamente um elemento TBody;
Se adicionarmos TR ou TD à tabela criada, todos os navegadores criarão automaticamente o TBody;
Se for uma tabela criada dinamicamente e TR e adicione TR ao TDOBO, o TBOD não sairá. Todos os navegadores seguem as operações dos desenvolvedores (a mente do navegador é realmente difícil de adivinhar)
<html> <head> <meta charset = "utf-8"/> <titter> compatível "Prendimento: 10px; Posição: Criado; 0; }; </script> <div id = "tb"> </div> <div id = "tb2"> </div> <div id = "tb3"> </div> <script type = "text/javascript"> var el = document.getElementById ("tb"); el.innerhtml = "<table> </itlast>" // ie67 será lançado 1. O navegador padrão segue a entrada do usuário e não gera automaticamente o corpo, portanto o comprimento do tobdy é 0 L (el.getElementsByTagName ("tbody"). Length); </script> <cript> var el = document.getElementById ("tb2"); el.innerhtml = "<tabela> <tr> 111 </tr> </ table>"; // se é padrão ou IE67 gerará automaticamente a tag TBody (el.getElementsByTagName ("tbody"). Comprimento); </script> <cript> var el = document.getElementById ("tb3"); el.innerhtml = "<table> <td> 111 </td> </table>"; // se é padrão ou IE67 gerará automaticamente a tag TBody (el.getElementsByTagName ("tbody"). Comprimento); </script> <cript> var tb = document.createElement ("tabela"); var tr = document.createElement ("tr"); tr.innerhtml = "trrtrtr"; tb.appendChild (TR); document.getElementsByTagName ("Body") [0] .AppendChild (TB); </script> </body> </html>Depois que o código for executado, você verá que, quando não houver elementos na tabela, o Chrome não gera automaticamente o TBody. Se você não escrever a tabela de acordo com o método de escrita normal, é assim
"<table><tr>111</tr></table>";
O HTML gerado se torna assim " 111<table><tr></tr></table>“, no jq você escreve $(“<table><tr>111</tr></table>”), e o html gerado também é assim ["111","<table><tr></tr></table>"], shina, eu mesmo, eu mesmo eu, eu, eu, eu, que não é o que é o que é o que é o que é o que é o que é um nidcado, o que é o nadamento, o que é o nidrado. padrões ...
Outra exceção no IE. O TBody será adicionado automaticamente através do InnerHTML e, se você aninhar suas tags incorretamente, ele não se importará com você. O método ApndendChild não gerará ativamente o TBody como outros navegadores;
$ .support.htmlSerialize
O navegador IE678 não pode gerar dinamicamente tags de link através do InnerHTML. Para criá -los criando novas tags:
<html> <head> <meta charset = "utf-8"/> <titter> compatível "Prendimento: 10px; Posição: Criado; 0; }; </script> <div> bounce </div> <div id = "link"> </div> <script type = "text/javascript"> var elink = document.getElementById ("link"); elink.innerhtml = '<link href = "http://cdn.bootcss.com/animate.css/33 </script> </body> </html>Embora a maioria das tags de link possa ser gerada através do InnerHTML, não é possível gerar tags de script através do InnerHTML:
1 2Next Page Leia o texto completo