Making this exit pop JavaScript redirect immediately

6 replies
Hello, I have this exit pop redirect Javascript. It works perfectly, except I want the page to redirect immediately while the prompt for the user to stay on page or leave is still there.

Does that make sense?

The script currently doesn't redirect until the user chooses to stay on page. But I have had one before that redirects immediately, even while the prompt is up.

Here is the script below. If anyone can help I would really appreciate it. Thanks.

<script language="javascript">
(function() {
setTimeout(function() {
var __redirect_to = 'http://myurl.com/';//

var _tags = ['button', 'input', 'a'], _els, _i, _i2;
for(_i in _tags) {
_els = document.getElementsByTagName(_tags[_i]);
for(_i2 in _els) {
if((_tags[_i] == 'input' && _els[_i2].type != 'button' && _els[_i2].type != 'submit' && _els[_i2].type != 'image') || _els[_i2].target == '_blank') continue;
_els[_i2].onclick = function() {window.onbeforeunload = function(){};}
}
}

window.onbeforeunload = function() {
setTimeout(function() {
window.onbeforeunload = function() {};
setTimeout(function() {
document.location.href = __redirect_to;
}, 500);
},5);
return '************************************** My Return Message ***************************';
}
}, 500);
})();
</script>
#exit #immediately #javascript #making #pop #redirect
  • Profile picture of the author samolabams
    the settimeout() function you are using causes the delay because of the second argument you passed..decrease the 500 to 1 and it will work...besides, the script you wrote is redundant..try rewriting it in a simple way
    {{ DiscussionBoard.errors[9210948].message }}
    • Profile picture of the author Technito
      Originally Posted by samolabams View Post

      the settimeout() function you are using causes the delay because of the second argument you passed..decrease the 500 to 1 and it will work...besides, the script you wrote is redundant..try rewriting it in a simple way
      Thanks for the response. But I actually didn't write the code, someone provided it to me without much instruction, and I am not really much of a coder.

      I did however find the below script, which appears to be a much simpler script and does redirect immediately as I want it.

      Code:
      <script type="text/javascript" language="javascript">  var areYouReallySure = false; var internalLink = false; function areYouSure() { if (!areYouReallySure && !internalLink) { areYouReallySure = true; location.href="REDIRECT URL HERE"  return "* Message Here*"; } } window.onbeforeunload = areYouSure; </script>
      But the problem is it pops up on any links that are clicked on my webpage rather than just when people exit off the page. After some research, I read that this code is missing something along the lines of:

      onClick="dontpop();"
      onSubmit="dontpop();"

      If you or anyone else that's reading think you might know how I might add these lines into the script I would really appreciate it. Thanks.
      Signature

      Want to Truly Lean How to Become a "Super Affiliate"? See How in This FREE Video Training. -> Click Here <-

      A smart man knows his limits. A wise man knows he has none.

      ~Unknown

      {{ DiscussionBoard.errors[9221578].message }}
      • Profile picture of the author heslil
        This is not that difficult the second script you have put basically uses the "onbeforeunload" event. This is fired whenever the page is unloaded. This includes closing the browser tab and clicking on links that go to another URL. So the solution is to override this event for the anchor tags. This needs a little bit of work, I don't a ready code right now. In case you don't find a ready to use code, I will be happy to put together a script for you.
        {{ DiscussionBoard.errors[9221876].message }}
        • Profile picture of the author Technito
          Originally Posted by heslil View Post

          This is not that difficult the second script you have put basically uses the "onbeforeunload" event. This is fired whenever the page is unloaded. This includes closing the browser tab and clicking on links that go to another URL. So the solution is to override this event for the anchor tags. This needs a little bit of work, I don't a ready code right now. In case you don't find a ready to use code, I will be happy to put together a script for you.
          Yeah I know it's not really that difficult (especially for coders) but I don't know much about javascript at all, aside from copy/pasting codes and making minor tweaks within the code.

          But I just want a script that will do just that and will work in all browsers. If you wouldn't mind putting together a simple script for me that will do that, I'll even pay you for it. But just let me know either way. Thanks.
          Signature

          Want to Truly Lean How to Become a "Super Affiliate"? See How in This FREE Video Training. -> Click Here <-

          A smart man knows his limits. A wise man knows he has none.

          ~Unknown

          {{ DiscussionBoard.errors[9226225].message }}
    • Profile picture of the author bikithalee
      Originally Posted by samolabams View Post

      the settimeout() function you are using causes the delay because of the second argument you passed..decrease the 500 to 1 and it will work...besides, the script you wrote is redundant..try rewriting it in a simple way
      Check this ......Javascript Redirect

      Lee
      {{ DiscussionBoard.errors[9911448].message }}
      • Profile picture of the author cwalsh
        I was able to succesfully implement the javascript on a page on my website BUT the text on the text in the popup in Firefox says "This page is asking you to confirm that you want to leave - data you have entered may not be saved." But that is not the text that I set in my script.

        It works correctly in all other browsers.

        Any suggestions on how to get it to function correctly in FF?
        {{ DiscussionBoard.errors[10097213].message }}

Trending Topics