2011-07-11 5 views
0

Lors de mon événement onbeforeunload, l'utilisateur a demandé s'il souhaitait quitter la page ou y rester. Lorsqu'ils cliquent sur "Rester sur la page", je veux qu'ils les redirigent vers une autre page Web dans la même fenêtre. Cela semble bizarre, mais c'est ce que l'on m'a assigné. Fondamentalement, la page principale joue une vidéo - je pense que la publicité pour acheter quelque chose, et quand ils se ferment mais décident de rester sur la page, nous voulons que la vidéo disparaisse/arrête de jouer et d'autres informations à apparaître "). Y a-t-il un moyen de le faire, sans juste montrer/cacher des divs? Puis-je remplacer la fonction? J'essaye actuellement de le faire de cette façon (comme vu ci-dessous) mais maintenant la boîte de dialogue n'apparaît pas du tout. Il travaillait avant toutes les idées sur ce que je fais mal, ou comment accomplir cette tâche?Gérer lorsque quelqu'un tente de fermer la fenêtre/l'onglet du navigateur

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <title>The Shocking Truth - Cabot Market Letter</title> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
      $("#vid").show(); 
      $("#div2").hide(); 
     }); 
     var test = 1; 
     function manipulatetest() 
     { 
      test = 2; 
     } 
    window.onbeforeunload = onbeforeunload_Handler; 
    function onbeforeunload_Handler() 
    {  if (test == 1){ 

       $("#vid").hide(); 
       $("#div2").show(); 
      var confirm = confirm("Would you like to stay on this page?"); 
      if (confirm == true) { 
       window.location = "http://www.google.com"; 
       } 

     } 
} 

</script> 
</head> 

<style type="text/css"> 

body { 
    background-color: #e0e6e5; 
} 

#vid { 
    margin: 20px auto; 
    width: 920px; 
} 

</style> 


<body> 

<div id="vid"> 
    <video width="920" height="540" autoplay preload controls> 
     <source src="shockingtruth.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> 
     <source src="shockingtruth.webm" type='video/webm; codecs="vp8, vorbis"'> 
     <source src="shockingtruth.ogv" type='video/ogg; codecs="theora, vorbis"'> 
     <object width="920" height="540" type="application/x-shockwave-flash" 
     data="flowplayer-3.2.1.swf"> 
     <param name="movie" value="flowplayer-3.2.7.swf" /> 
     <param name="allowfullscreen" value="true" /> 
     <param name="flashvars" value='config={"clip": {"url": "http://www.cabot.net/videos/shocking-truth/shockingtruth.mp4", "autoPlay":true, "autoBuffering":true}}' /> 
     <p>Download video as <a href="pr6.mp4">MP4</a>, <a href="pr6.webm">WebM</a>, or <a href="pr6.ogv">Ogg</a>.</p> 
     </object> 
    </video> 
</div> 

<div id="div2"> 
    <video width="920" height="540" autoplay preload controls> 
     <source src="shockingtruth.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> 
     <source src="shockingtruth.webm" type='video/webm; codecs="vp8, vorbis"'> 
     <source src="shockingtruth.ogv" type='video/ogg; codecs="theora, vorbis"'> 
     <object width="920" height="540" type="application/x-shockwave-flash" 
     data="flowplayer-3.2.1.swf"> 
     <param name="movie" value="flowplayer-3.2.7.swf" /> 
     <param name="allowfullscreen" value="true" /> 
     <param name="flashvars" value='config={"clip": {"url": "http://www.cabot.net/videos/shocking-truth/shockingtruth.mp4", "autoPlay":true, "autoBuffering":true}}' /> 
     <p>Download video as <a href="pr6.mp4">MP4</a>, <a href="pr6.webm">WebM</a>, or <a href="pr6.ogv">Ogg</a>.</p> 
     </object> 
    </video> 
</div> 

<p style="text-align: center;"><a href="http://www.cabot.net/info/cml/cmlld03.aspx?source=ed01" onclick="manipulatetest();">Click Here To Order</a></p> 

</body> 

+0

cela ressemble vraiment à l'expérience utilisateur la plus ennuyeuse jamais. – jAndy

+0

jQuery n'a pas été conçu pour le mal. = P –

Répondre

1

Un sale tour est un setTimeout, et voir si elle fonctionne encore: http://jsfiddle.net/FJ4LR/1/.

window.onbeforeunload = function() { 
    setTimeout(function() { 
     alert('You clicked stay.'); 
    }, 500); 

    return 'Really?'; 
}; 
+0

D'accord, cela fonctionne bien - comment pourrais-je le gérer pour faire quelque chose quand ils décident de rester sur la page? –

+0

@OhMisterRabbit: Au lieu de cette alerte, codez simplement quelque chose d'autre qui devrait arriver à la place. Comme le remplacer par 'window.location =" http://www.google.com ";'. – pimvdb

+0

@OhMisterRabbit: Oui, c'est exactement ce que j'essayais de dire. Pourriez-vous essayer cela? – pimvdb

Questions connexes