2010-01-09 2 views
0

J'utilise jQuery pour ouvrir une fenêtre promotionnelle -dans- 5 secondes après le chargement d'une page. Mais l'effet est perdu pour les personnes qui ouvrent la page dans une nouvelle fenêtre ou un nouvel onglet. Quand ils arriveront à mon onglet, la fenêtre sera déjà ouverte.déclencher une fonction jQuery n secondes après l'affichage de l'onglet/fenêtre

Y a-t-il un moyen de déclencher cette situation lorsque les gens commencent à voir mon site?

Je pensais attraper un rouleau ou quelque chose, mais les gens ne commencent pas à défiler immédiatement et la plupart ne défilent pas du tout. À part ça, je n'ai plus d'idées.

Je ne sais pas si jQuery offre une solution ici ... javascript?

Merci.

+0

mmm ... belle po pubs –

+0

@Joel: Je suis sentir un sarcasme là-bas. Avoir des publicités pop-up est un péché maintenant? – Necati

+0

Quelqu'un vient de marquer ma réponse/commentaire. J'espère vraiment que ce n'était pas toi. Si c'est vous, je suis vraiment désolé pour vous parce que votre commentaire inutile était le signal nécessaire ... Je disais juste à ma copine que j'étais très heureux d'avoir trouvé cet endroit. Cela m'a sauvé des heures dans le dépannage et c'était surtout grâce au système de flair. Je comprends maintenant qu'il est également utilisé comme une arme quelconque. Désolé si ce n'était pas vous, mais ce n'est pas une question trop attrayante (vue environ 30 fois) et le vote en bas coïncide mon commentaire ci-dessus ... Peu importe ... – Necati

Répondre

5

ce qui suit devrait faire l'affaire .. (jQuery)

<script type="text/javascript"> 
function initiatePopup(){ 
    $(window).unbind('blur'); 
    $(window).unbind('focus'); 
    // do the popup 
}; 

$(document).ready(
      function(){ 
         $(window).focus(initiatePopup).blur(initiatePopup); 
         // your other functions should go from here on 

         } 
       ); 
</script> 

[EDIT]sur demande OP ..

Code modifié pour rendre l'exemple tout compris

[EDIT 2]

Le code ci-dessus a été édité à nouveau car nous devons également gérer l'événement de flou. Nous prenons donc le code du popup ailleurs pour ne pas le dupliquer dans les deux événements.

[EDIT 3]

si vous voulez passer des paramètres à la fenêtre contextuelle si elles sont créées par la suite, puis modifiez l'événement ligne de reliure à

$(window).focus(function() { initiatePopup(params); }).blur(function() { initiatePopup(params);); 

et bien sûr changer le initiatePopup d'accepter les paramètres ..

+0

Je l'ai testé et ça marche tout seul. (J'ai essayé un message d'alerte de test). J'ai besoin de tout le matériel jQuery (cette fonction et d'autres) en commençant par le document (prêt). Je n'arrivais pas à faire ça pour coller le document (prêt).Je suppose que c'est une autre question jQuery mais je pense que c'est facile pour vous, et pourrait me donner un pourboire pendant que vous y êtes. Merci! – Necati

+0

ajouté un peu plus d'infos dans le message original ... bien que je viens d'ajouter ce que vous décrivez ... peut-être que c'était une faute de frappe .. –

+0

a fait quelques changements de plus pour gérer l'événement flou car il est celui tiré de page en page ... –

1

Est-ce que placer un div autour de tout fonctionnerait avec un écouteur d'événements onmouseover? Je ne l'ai jamais essayé, donc je ne suis pas sûr que ça se déclenche ou non, mais ça vaut peut-être le coup.

+0

Je pense que cela pourrait fonctionner. Je vais essayer cela mais je suis préoccupé par le fait que tout le monde ne déplace pas la souris sur la page une fois qu'ils cliquent sur le nouvel onglet, peut-être même moins avec la nouvelle fenêtre. Ils peuvent même défiler sans passer la souris sur le div d'emballage et cela ne déclenchera pas la fuction (juste deviner). Si je ne trouve pas d'autre moyen cependant, cela semble être une bonne option. – Necati

Questions connexes