7
votes

Charges d'alerte JavaScript avant l'affichage de la page

sur mon mobile, dans sa safari si je vais à ma page par défaut qui a une alerte ("bonjour") sur l'événement de la carrosserie, l'alerte s'affiche avec ma page par défaut entièrement visible à l'arrière-plan. Si j'installez ensuite sur un autre site par exemple bbc.co.uk, puis tapez mon adresse Web pour ma page par défaut dans la barre d'adresse, l'alerte montre avec la teneur en BBC en arrière-plan, c'est comme la charge de l'alerte avant la page. a chargé.

Comment montrer seulement le message une fois que la page complète est visible. J'ai lu que window.onload attend que tout soit chargé avant de déclencher l'alerte, mais je dois avoir quelque chose de mal parce que le comportement ne change pas. J'ai aussi essayé: xxx

et xxx

au cas où il a quelque chose à voir avec le cache mais je ne fais pas Je pense que c'est le problème. Des idées?

merci


2 commentaires

différence entre $ (document) .Ready and $ (fenêtre) .charger dans jQuery


La réponse que vous avez acceptée ne résout pas vraiment le problème


4 Réponses :


3
votes

Si vous voulez afficher la case allère, utilisez la fenêtre.Onload Il n'y a aucun point d'utilisation à la fois, voici le code qui fonctionnera bien

window.Onload (qui est mis en œuvre même dans l'ancien navigateurs), qui incendie lorsque la page entière charge xxx

jQuery fournit document.Ready , qui résume ceux qui s'éloigent et se déclenchent dès que la page DOM est prêt xxx

vérifier de: window.onload vs $ (document) .Ready ()

fenêtre.onload est l'événement JavaScript intégré, mais comme sa mise en œuvre avait subtile Coinks à travers les navigateurs (FF / IE6 / IE8 / Opera), JQuery fournit un document.Ready, qui résume ceux qui s'éloignent et se déclenchent dès que la page DOM est prête (n'attend pas les images, etc.). < / p>

document.Ready est une fonction jQuery, emballage et fournissant la cohérence aux événements suivants:

  • document.ondomcontenterReady / document.onomcontent chargé - un événement nouveau qui déclenche lorsque le DOM du document est chargé (ce qui peut être quelque temps avant avant Les images, etc. sont chargées); Encore une fois, légèrement différent dans IE et dans le reste du monde
  • et window.onload (qui est implémenté même dans des navigateurs anciens), qui déclenche lorsque la page entière se charge (images, styles, etc.)

3 commentaires

Sûrement même si les deux ensemble sont inutiles à l'aide de deux personnes ne devraient pas le faire courir trop tôt si?


L'événement READY se produit une fois que le document HTML a été chargé, et non lorsque la page entière a été rendue ... voir Stackoverflow.com/Questtions/3698200/...


Ah, une autre affiche a la réponse. Votre réponse ne fonctionnera pas car le code que vous avez cité va évaluer alerte ('test') avant de l'attribuer au surcharge. Vous devez transmettre une fonction sur le téléchargement.



2
votes
$(window).load(function() {
      alert('Test');
});

2 commentaires

L'alerte apparaît toujours avant que la page soit visible. La page de référification est toujours visible à l'arrière-plan.


J'ai dû utiliser la fonction Settimeout ainsi que la fenêtre JQuery.load. Je ne sais pas pourquoi ça n'a pas fonctionné, mais cela a travaillé pour moi. $ (fenêtre) .Ready (fonction (fonction () {SETTIMETOut (fonction () {alerte ("test")}, 1000);});



10
votes

Vous transmettez une référence à une fonction à la fenêtre .Onload code> et non l'appel actuel.

Essayez p>

window.onload = function(){
 alert('test');
}


2 commentaires

+1 pour expliquer en réalité pourquoi le code de l'utilisateur n'a pas fonctionné plutôt que de simplement fournir un autre code. Le fait que cela évaluerait l'alerte avant d'assigner à l'événement est un bogue à la recherche subtile qui est assez difficile à taper si vous ne le recherchez pas spécifiquement (puisque l'observateur humain sait ce que cela signifie et ne pense pas à ce qu'il dit effectivement).


J'ai essayé cela et que l'alerte apparaît toujours avec la page de référification en arrière-plan.



-2
votes

<!DOCTYPE html>
<html>
<body onload="show_popup()">

<script>
function show_popup() {
    alert("Popup shows");
}
</script>

</body>
</html>


0 commentaires