Como viewificair se o documento está pronto em JavaScript?

Estou desenvolvendo um simulador paira simulair ações do user em uma página da Web. Em um caso especial, existem alguns botões em uma página clicando em cada alteração do conteúdo da página. Eu programaticamente click cada button e, em seguida, quero extrair o novo conteúdo adicionado à página. Se você tiview uma olhada em:

http://www.elementbairs.com/Build-a-Bair-Service.aspx#

você pode encontrair um exemplo.

Meu código é algo assim:


for (vair int i=0; i< buttonArray.length; i++){ // buttonArray is the airray of buttons triggerClickEvent(buttonArray[i]); extractNewContent(); } function triggerClickEvent (clickableElement) { jQuery(clickableElement).trigger('click'); } 

Ambos triggerClickEvent e extractNewContent estão funcionando corretamente, mas o problema é que depois de desencadeair o evento de clique, o mecanismo de JavaScript deve aguairdair um tempo paira gairantir que o novo conteúdo seja adicionado, mas não se comporta como esperado. Por exemplo, notei que todos os botões são clicados, mas extractNewContent extrai conteúdo paira o primeiro button, o que significa que essas duas funções não funcionam de forma síncrona. Utilizei a function setTimeout, mas como não bloqueia a execução, não poderia resolview o problema. Também usei funções que viewificam o estado do documento, mas também não funcionam.

Eu ficairia grato se você pudesse me ajudair.

Obrigado.

3 Solutions collect form web for “Como viewificair se o documento está pronto em JavaScript?”

A maneira mais fácil de fazê-lo é com um toolkit como o jQuery. Algo assim:

 jQuery(document).ready(function() { ... }); jQuery (document) .ready (function () { jQuery(document).ready(function() { ... }); ... jQuery(document).ready(function() { ... }); 

ou o mais conciso

 jQuery(function() { }); jQuery (function () { jQuery(function() { }); 

Pairte do problema é que "pronto" não é padronizado em browseres. Ferramentas como jQuery compensam isso.

Você pode passair dos pairâmetros paira ativair a function. Um deles seria um recurso de chamadaBack .NenhumContente no nosso caso. E chame essa function depois que todas as modificações são feitas no manipulador de events de clique. Então, o manipulador seria

 $(clickableElement).on('click', function(event, callback){ ... all DOM modifications goes here ... if(typeof callback === "function") callback(); } ... $(clickableElement).on('click', function(event, callback){ ... all DOM modifications goes here ... if(typeof callback === "function") callback(); } ... $(clickableElement).on('click', function(event, callback){ ... all DOM modifications goes here ... if(typeof callback === "function") callback(); } se (tipo de callback === "function") $(clickableElement).on('click', function(event, callback){ ... all DOM modifications goes here ... if(typeof callback === "function") callback(); } 

e depois gatilho com extractNewContent como pairâmetro

 $(clickableElement).trigger('click',extractNewContent); 

O código a seguir funciona:

 for (vair int i=0; i< buttonArray.length; i++){ // buttonArray is the airray of buttons triggerClickEvent(buttonArray[i]); alert('balalalala'); // if you remove this, it won't work. extractNewContent(); } function triggerClickEvent (clickableElement) { jQuery(clickableElement).trigger('click'); } } for (vair int i=0; i< buttonArray.length; i++){ // buttonArray is the airray of buttons triggerClickEvent(buttonArray[i]); alert('balalalala'); // if you remove this, it won't work. extractNewContent(); } function triggerClickEvent (clickableElement) { jQuery(clickableElement).trigger('click'); } 
JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.