Galerita, já vi muitas vezes aqui no fórum um erro comum que é tentar pegar um elemento html por javascript antes desse elemento ter sido criado efetivamente no corpo do documento.
Nas bibliotecas Javascript como Jquery, já está implementada a função "ready" que verifica se o documento está criado antes de executar alguma ação , afim de evitar aquele erro que comentei anterioremente.
Mas nem sempre precisamos de uma biblioteca, ou por alguma razão, não podemos ou não queremos usar uma biblioteca inteira para executar apenas algumas ações. Por isso, muitos desenvolvedores fizeram a sua versão da famosa função "ready" do Jquery. O micox fez uma :http://forum.imasters.uol.com.br/index.php?showtopic=259090
Eu particularmente não gosto de códigos grandes e sou preguiçoso e ao invés de copiar essas soluções para a minha máquina eu sempre executava uma versão mais simples que eu pensei no meio de um projeto há um tempinho e que até hj eu uso e não tem me dado nenhum problema até agora. Queria compartilhar com vocês essa outra forma de se executar o ready na página.
O código é o seguinte:
function ready(fn){
var clock = setInterval(
function(){
if(document.body) {
fn()
return clearInterval(clock)
}
},1
)
}
A função ready é uma função que recebe uma outra função que será executada apenas se o objeto document.body existir na verificação do if. O document.body só existirá se, numa forma simples de exemplificar, a última tag </body> ser criada e montada no documento. O body só é criado após todos os seus filhos terem sido criados.
No caso de existir o document.body, então a função que foi passada como argumento será executada e a repetição do teste terminada.
Eu ainda não sei qual a desvantagem de usar isso, até agora usei para projetos pequenos ou médios e não tem dado erro ou aparente comprometimento no processamento.
Então a forma de usar a função é essa:
ready(function(){
var obj = document.getElementsByTagName('div')
alert(obj.length)
})
Aí dentro da ready você poderia colocar qualquer outra função ou comando javascript.
Se alguém souber alguma desvantagem, algum erro ou qualquer coisa aparente nesse código que comprometa alguma coisa avisa ;).
Pergunta
KaKarotto
Galerita, já vi muitas vezes aqui no fórum um erro comum que é tentar pegar um elemento html por javascript antes desse elemento ter sido criado efetivamente no corpo do documento.
Nas bibliotecas Javascript como Jquery, já está implementada a função "ready" que verifica se o documento está criado antes de executar alguma ação , afim de evitar aquele erro que comentei anterioremente.
Mas nem sempre precisamos de uma biblioteca, ou por alguma razão, não podemos ou não queremos usar uma biblioteca inteira para executar apenas algumas ações. Por isso, muitos desenvolvedores fizeram a sua versão da famosa função "ready" do Jquery. O micox fez uma :http://forum.imasters.uol.com.br/index.php?showtopic=259090
Eu particularmente não gosto de códigos grandes e sou preguiçoso e ao invés de copiar essas soluções para a minha máquina eu sempre executava uma versão mais simples que eu pensei no meio de um projeto há um tempinho e que até hj eu uso e não tem me dado nenhum problema até agora. Queria compartilhar com vocês essa outra forma de se executar o ready na página.
O código é o seguinte:
A função ready é uma função que recebe uma outra função que será executada apenas se o objeto document.body existir na verificação do if. O document.body só existirá se, numa forma simples de exemplificar, a última tag </body> ser criada e montada no documento. O body só é criado após todos os seus filhos terem sido criados. No caso de existir o document.body, então a função que foi passada como argumento será executada e a repetição do teste terminada. Eu ainda não sei qual a desvantagem de usar isso, até agora usei para projetos pequenos ou médios e não tem dado erro ou aparente comprometimento no processamento. Então a forma de usar a função é essa:Aí dentro da ready você poderia colocar qualquer outra função ou comando javascript.
Se alguém souber alguma desvantagem, algum erro ou qualquer coisa aparente nesse código que comprometa alguma coisa avisa ;).
Abraço.
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.