2017-09-28 2 views
0

J'écris un site web modélisé par Javascript. Dans la page Web j'ai écrit un message pour empêcher l'utilisateur d'activer JS. Dans mon code JS, je supprime ce noeud à la première étape. Le problème est que l'effet apparaît jusqu'à ce que la page soit complètement chargée ...Javascript force changement apparaissent avant la page entièrement chargé

var modelerBody = null; 

var loadingNode = document.createElement("div"); 

loadingNode.appendChild(document.createTextNode(messageGeneric['loading'])); 
loadingNode.setAttribute("id", "loading"); 

window.onload = function() { 

    document.getElementById("jsDisabled").remove() 

    var body = document.getElementsByTagName("body")[0]; 
    body.insertBefore(loadingNode, body.childNodes[0]); 
    inflateForms(); 
    modelerBody = new Modeler.Screen(body.childNodes[1]); 
    modelerBody.modelize(); 
    // Remove Loading message 
    body.childNodes[0].remove(); 

} 

Comment puis-je résoudre ce problème? désolé pour mon anglais je l'apprends ...

+0

Vous pouvez regarder le [ ''

Répondre

1

Vous pouvez exécuter Javascript avant que l'élément ait chargé en mettant le tag de script au-dessus de la div que vous voulez supprimer, mais il ne sera pas capable de trouver la div parce que il n'a pas encore été chargé. Il n'y a aucun moyen d'éditer les éléments avant qu'ils aient été chargés.

L'étiquette <noscript> peut être utilisée à cette fin. Envelopper un élément pour afficher si l'utilisateur n'a pas activé Javascript.

<noscript> 
 
    <div>Javascript isn't enabled</div> 
 
</noscript> 
 
<script> 
 
    let jsenabled = document.createElement("div"); 
 
    jsenabled.innerText = "Javascript is enabled"; 
 
    document.body.appendChild(jsenabled); 
 
</script>