<!DOCTYPE html> | |
<html> | |
<head> | |
<meta content="Hans-Peter Buniat" name="author"> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
<title>Form-Submit Popunder</title> | |
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> | |
</head> | |
<body> | |
<form id="testSubmit" action="http://www.google.com"> | |
<input type="submit" /> | |
</form> | |
<script type="text/javascript"> | |
/* use jQuery as container for more convenience */ | |
(function($) { | |
/** | |
* Create a popunder | |
* | |
* @param sUrl Url to open as popunder | |
* | |
* @return jQuery | |
*/ | |
$.popunder = function(sUrl) { | |
var bSimple = $.browser.msie, | |
run = function() { | |
$.popunderHelper.open(sUrl, bSimple); | |
}; | |
(bSimple) ? run() : window.setTimeout(run, 1); | |
return $; | |
}; | |
/* several helper functions */ | |
$.popunderHelper = { | |
/** | |
* Helper to create a (optionally) random value with prefix | |
* | |
* @param string name | |
* @param boolean rand | |
* | |
* @return string | |
*/ | |
rand: function(name, rand) { | |
var p = (name) ? name : 'pu_'; | |
return p + (rand === false ? '' : Math.floor(89999999*Math.random()+10000000)); | |
}, | |
/** | |
* Open the popunder | |
* | |
* @param string sUrl The URL to open | |
* @param boolean bSimple Use the simple popunder | |
* | |
* @return boolean | |
*/ | |
open: function(sUrl, bSimple) { | |
var _parent = self, | |
sToolbar = (!$.browser.webkit && (!$.browser.mozilla || parseInt($.browser.version, 10) < 12)) ? 'yes' : 'no', | |
sOptions, | |
popunder; | |
if (top != self) { | |
try { | |
if (top.document.location.toString()) { | |
_parent = top; | |
} | |
} | |
catch(err) { } | |
} | |
/* popunder options */ | |
sOptions = 'toolbar=' + sToolbar + ',scrollbars=yes,location=yes,statusbar=yes,menubar=no,resizable=1,width=' + (screen.availWidth - 10).toString(); | |
sOptions += ',height=' + (screen.availHeight - 122).toString() + ',screenX=0,screenY=0,left=0,top=0'; | |
/* create pop-up from parent context */ | |
popunder = _parent.window.open(sUrl, $.popunderHelper.rand(), sOptions); | |
if (popunder) { | |
popunder.blur(); | |
if (bSimple) { | |
/* classic popunder, used for ie*/ | |
window.focus(); | |
try { opener.window.focus(); } | |
catch (err) { } | |
} | |
else { | |
/* popunder for e.g. ff4+, chrome */ | |
popunder.init = function(e) { | |
with (e) { | |
(function() { | |
if (typeof window.mozPaintCount != 'undefined' || typeof navigator.webkitGetUserMedia === "function") { | |
var x = window.open('about:blank'); | |
x.close(); | |
} | |
try { opener.window.focus(); } | |
catch (err) { } | |
})(); | |
} | |
}; | |
popunder.params = { | |
url: sUrl | |
}; | |
popunder.init(popunder); | |
} | |
} | |
return true; | |
} | |
}; | |
})(jQuery); | |
$('#testSubmit').submit(function() { | |
jQuery.popunder('http://www.fluege.de').popunder('http://www.flug24.de'); | |
}); | |
</script> | |
</body> | |
</html> |
This comment has been minimized.
This comment has been minimized.
Hi. As you expected, triggering this on $.ready makes no difference. When creating this script, the old-school popunder worked fine in chrome - as there is more flickering when creating multiple new windows, i've used the old technique for all browser except ff4+. Just change the browser-switch, like i did already, and it works fine. Remember, that you can still open only one popunder in ie9. |
This comment has been minimized.
This comment has been minimized.
Its kinda weird. But it is the pop under is not working on chrome when I change the trigger to $.ready. Here is the lines of code that I changed. $(document).ready(function() { I also remove the form since I already change the trigger. Thanks in advance. |
This comment has been minimized.
This comment has been minimized.
It seems that chrome is blocking popups in general, if they are not triggered by a user-generated event (e.g. click, submit, ...). |
This comment has been minimized.
This comment has been minimized.
Hi. I know it says that it only works in IE9 (when it comes to IE, that is). Great script, by the way! |
This comment has been minimized.
This comment has been minimized.
Hi, IE6-8 should work fine. There is no need of special scripts, as the old fashioned blur/focus approach does work. |
This comment has been minimized.
This comment has been minimized.
Hi hpbuniat, thank you for your response. |
This comment has been minimized.
This comment has been minimized.
If popups are not allowed in general, i do not think that this can be bypassed. |
This comment has been minimized.
This comment has been minimized.
Hi guys ! Well, Sounds good on all browsers :) Great work hpbuniat ! |
This comment has been minimized.
This comment has been minimized.
Hi, how to make above code working on body on load. Working fine in On Click. Thanks. |
This comment has been minimized.
This comment has been minimized.
Great script. Was wondering how to activate the popunder on a valid form submit. This code works regardless if a form field is empty or not. I would like values entered into a form field, then submit then the popunder happens. Any ideas? |
This comment has been minimized.
This comment has been minimized.
Hi, you could validate the form via ajax (onchange, onsubmit, ..) and use the return value to decide, if the form should be submitted (or the popunder triggered) or not. |
This comment has been minimized.
This comment has been minimized.
Just updated to Firefox 12 and looks like this doesn't work any more :-( |
This comment has been minimized.
This comment has been minimized.
Right, it seems like ff12 doesn't like the toolbar anymore - i've disabled it. The latest update also got some performance improvements, as the popunder are now triggered in the background. Feel free, to take a look at the version with cookie support (https://gist.github.com/2058263), which can block a popunder for a certain time. |
This comment has been minimized.
This comment has been minimized.
Your latest change seems to have broken your script. db50d4 through 29821e work for me, but 2cbd27 does not. |
This comment has been minimized.
This comment has been minimized.
Thanks @kylecronin for the hint. There was a misplaced parenthesis, which is now fixed. |
This comment has been minimized.
This comment has been minimized.
This works fine. Just doesnt handle browser sessions. It would be great to load it only once in one session. |
This comment has been minimized.
This comment has been minimized.
This is working fine. unable to handle browser session. Can you help me out in loading once per browser session. |
This comment has been minimized.
This comment has been minimized.
@pareen: |
This comment has been minimized.
This comment has been minimized.
Hi hpbuniat, That code has a cookie timer. What do I set to disable: I removed 3600000 and blockTime, but that is not what I was supposed to do I guess. I am not good with Javascript. |
This comment has been minimized.
This comment has been minimized.
created a branch with size options, trying to find a way to do a pull request |
This comment has been minimized.
This comment has been minimized.
Is it possible to make popunder windows "self close"? |
This comment has been minimized.
This comment has been minimized.
If is self close and is pop under why you opened it in the first place_ |
This comment has been minimized.
This comment has been minimized.
That's fraud, but if is about cookie you can use an iframe on the actual page and is easier. |
This comment has been minimized.
This comment has been minimized.
That's fraud, but if is about cookie you can use an iframe on the actual page and is easier. |
This comment has been minimized.
This comment has been minimized.
Great script thank you it helped me a lot :) |
This comment has been minimized.
This comment has been minimized.
Thanks @shapeshifta78 for the chrome21 compatibly-patch |
This comment has been minimized.
This comment has been minimized.
Thanks so much, I panicked when I saw that the pop under script wasn't working any longer on the new Chrome update, but you've pwnt it again! Great Job! |
This comment has been minimized.
This comment has been minimized.
The reason that it stopped working on the new Chrome was that it no longer had variable for window.mozPaintCount So now they have navigator.webkitGetUserMedia ? |
This comment has been minimized.
This comment has been minimized.
Great work. But it displays as Popup instead of Pop-under in Firefox 15.0 on Mac OS. Any fixes? |
This comment has been minimized.
This comment has been minimized.
I love the script, works perfectly on its own, but when trying to integrate it to my script nothing happens. background:#ccc;text-align
Password: <TMPL_IF rar_nfo> <TMPL_IF image_url> <TMPL_IF video_code> <TMPL_IF msg> <TMPL_VAR msg> </TMPL_IF>
<TMPL_UNLESS no_link> <TMPL_IF pass_required> <TMPL_IF captcha_on>
<TMPL_IF countdown> <TMPL_IF direct_links> </TMPL_UNLESS>
No such file No such user exist File not found
<Script type="text/javascript" language="JavaScript">
function countDown()
{
num = parseInt( $$('').innerHTML )-1;
if(num<=0)
{
$$('btn_download').disabled=false;
$$('countdown_str').style.display='none';
}
else
{
$$('').innerHTML = num;
setTimeout("countDown()",1000);
}
}
if($$('btn_download'))
{
$$('btn_download').disabled=true;
setTimeout("countDown()",1000);
}
function checkForm(f1)
{
if(f1.cmt_name && f1.cmt_name.value==''){alert("");return false;}
if(f1.cmt_email && f1.cmt_email.value==''){alert("");return false;}
if(f1.cmt_text.value.length<5){alert("");return false;}
return true;
}
function copy(obj)
{
obj.focus();
obj.select();
}
document.write('<style type="text/css">.tabber{display:none;}<\/style>');
var tab_cookie='tab_down';
</Script>
<script language="JavaScript" type="text/javascript" src="/tabber.js"></script>
<TMPL_IF enable_file_comments> <TMPL_INCLUDE comments.html> <TMPL_IF more_files> What i am trying to do is when a user click the "Request Download or Streaming Ticket" button, it would trigger the popunder. Can you help ? |
This comment has been minimized.
This comment has been minimized.
In the current version of Google Chrome (21.0.1180.89) if the tab the pop under is originating from is not the last tab then the focus jumps to the next tab along. I think this is because in Chrome when you close a tab that has focus then the focus jumps to the next tab after the one that is being closed. I'm not sure if this issue existed in previous versions of Chrome. |
This comment has been minimized.
This comment has been minimized.
Chrome 22 not working: popunder become pop up |
This comment has been minimized.
This comment has been minimized.
Chrome 22: the popunder works the first time then it's always a pop up. Anyone else notice the same thing and is there any work around? |
This comment has been minimized.
This comment has been minimized.
Sorry looks like its one of my extensions that causing it to popup. Works fine on other Chrome 22 installations. |
This comment has been minimized.
This comment has been minimized.
For me, on Chrome 22 it also opens as a popup instead of popunder. :/ |
This comment has been minimized.
This comment has been minimized.
I'm not longer updating the gist, because i created a repo for this: This version works on most chrome 22 installations, but it's not perfect yet. I'm still tinkering ;) |
This comment has been minimized.
This comment has been minimized.
Hi, I am Asp.net developer, I have used your script for popunder, I have called the pop under function in the <a> tag <script> ( <a href="xxx.aspx" onclick="openpopunder()" >popunder</a> ) called the popup script in the code behind after saving my form values in Sessions Any Idea? Please reply Thanks, |
This comment has been minimized.
This comment has been minimized.
i want to load this script, when my mouse hover on the browser window. can anyone help me. |
This comment has been minimized.
Hi. i am very amazed with your script. I an new to pop under and I am currently having an issue with the script. The thing is I can the $('#testSubmit').submit(function() to $(document).ready(function() to make the trigger to onload event. It is working fine with other browsers except for chrome. The pop under become pop up in the chrome. Can you help me with this?
Thanks in advance.