Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 4 of 4
  1. #1
    New to the CF scene
    Join Date
    Dec 2013
    Posts
    3
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Function checkTarget - Help

    Hi all, first sorry for my bad english, i will try to explain myself the best i can.

    Im using this code right now to open a popunder in my website:

    Code:
    var puShown = false;
    var PopWidth = 1000;
    var PopHeight = 750;
    var PopFocus = 0;
    var _Top = null;
    
    
    function GetWindowHeight() {
    var myHeight = 0;
    if( typeof( _Top.window.innerHeight ) == 'number' ) {
    myHeight = _Top.window.innerHeight;
    } else if( _Top.document.documentElement && _Top.document.documentElement.clientHeight ) {
    myHeight = _Top.document.documentElement.clientHeight;
    } else if( _Top.document.body && _Top.document.body.clientHeight ) {
    myHeight = _Top.document.body.clientHeight;
    }
    return myHeight;
    }
    
    
    function GetWindowWidth() {
    var myWidth = 0;
    if( typeof( _Top.window.innerWidth ) == 'number' ) {
    myWidth = _Top.window.innerWidth;
    } else if( _Top.document.documentElement && _Top.document.documentElement.clientWidth ) {
    myWidth = _Top.document.documentElement.clientWidth;
    } else if( _Top.document.body && _Top.document.body.clientWidth ) {
    myWidth = _Top.document.body.clientWidth;
    }
    return myWidth;
    }
    
    
    function GetWindowTop() {
    return (_Top.window.screenTop != undefined) ? _Top.window.screenTop : _Top.window.screenY;
    }
    
    
    function GetWindowLeft() {
    return (_Top.window.screenLeft != undefined) ? _Top.window.screenLeft : _Top.window.screenX;
    }
    
    
    function doOpen(url)
    {
    var popURL = "about:blank"
    var popID = "ad_" + Math.floor(89999999*Math.random()+10000000);
    var pxLeft = 0;
    var pxTop = 0;
    pxLeft = (GetWindowLeft() + (GetWindowWidth() / 2) - (PopWidth / 2));
    pxTop = (GetWindowTop() + (GetWindowHeight() / 2) - (PopHeight / 2));
    
    
    if ( puShown == true )
    {
    return true;
    }
    
    
    var PopWin=_Top.window.open(popURL,popID,'toolbar=0,scrollbars=1,location=1,statusbar=1,menubar=0,resizable=1,top=' + pxTop + ',left=' + pxLeft + ',width=' + PopWidth + ',height=' + PopHeight);
    
    
    if (PopWin)
    {
    puShown = true;
    
    
    if (PopFocus == 0)
    {
    PopWin.blur();
    
    
    if (navigator.userAgent.toLowerCase().indexOf("applewebkit") > -1)
    {
    _Top.window.blur();
    _Top.window.focus();
    }
    }
    
    
    PopWin.Init = function(e) {
    
    
    with (e) {
    
    
    Params = e.Params;
    Main = function(){
    
    
    if (typeof window.mozPaintCount != "undefined") {
    var x = window.open("about:blank");
    x.close();
    
    
    }
    
    
    var popURL = Params.PopURL;
    
    
    try { opener.window.focus(); }
    catch (err) { }
    
    
    window.location = popURL;
    }
    
    
    Main();
    }
    };
    
    
    PopWin.Params = {
    PopURL: url
    }
    
    
    PopWin.Init(PopWin);
    }
    
    
    return PopWin;
    }
    
    
    function setCookie(name, value, time)
    {
    var expires = new Date();
    
    
    expires.setTime( expires.getTime() + time );
    
    
    document.cookie = name + '=' + value + '; path=/;' + '; expires=' + expires.toGMTString() ;
    }
    
    
    function getCookie(name) {
    var cookies = document.cookie.toString().split('; ');
    var cookie, c_name, c_value;
    
    
    for (var n=0; n<cookies.length; n++) {
    cookie  = cookies[n].split('=');
    c_name  = cookie[0];
    c_value = cookie[1];
    
    
    if ( c_name == name ) {
    return c_value;
    }
    }
    
    
    return null;
    }
    
    
    function initPu()
    {
    
    
    _Top = self;
    
    
    if (top != self)
    {
    try
    {
    if (top.document.location.toString())
    _Top = top;
    }
    catch(err) { }
    }
    
    
    if ( document.attachEvent )
    {
    document.attachEvent( 'onclick', checkTarget );
    }
    else if ( document.addEventListener )
    {
    document.addEventListener( 'click', checkTarget, false );
    }
    }
    
    
    function checkTarget(e)
    {
    if ( !getCookie('popundr') ) {
    var e = e || window.event;
    var win = doOpen('http://www.mywebsite');
    
    
    setCookie('popundr', 1, 12*60*60*1000);
    }
    }
    
    
    initPu();
    as you can see in this function:
    Code:
    function checkTarget(e)
    {
    if ( !getCookie('popundr') ) {
    var e = e || window.event;
    var win = doOpen('http://www.mywebsite');
    I have a domain name opening every 12 hours to the visitors, my question is, how can i add more domains, lets say 4 domains and the pop-under open one of them randomly?

    Thank you all.

  • #2
    Supreme Master coder! Philip M's Avatar
    Join Date
    Jun 2002
    Location
    London, England
    Posts
    17,915
    Thanks
    203
    Thanked 2,531 Times in 2,509 Posts
    Try this:-

    Code:
    function checkTarget(e) {
    if ( !getCookie('popundr') ) {
    var e = e || window.event;
    var domains = ["http://www.mywebsiteA", "http://www.mywebsiteB", "http://www.mywebsiteC", "http://www.mywebsiteD"] 
    var num = domains.length;  // 4 in this case
    var randy = Math.floor(Math.random() * num);  // generates 0-3 randomly, array index starts at 0
    var win = doOpen(domains[randy]);
    setCookie('popundr', 1, 12*60*60*1000);
    }
    }

    From newspaper review of the pantomime "Dick Whittington" starring Elliott Robertson: "Robertson's Dick keeps the audience thoroughly amused at all times".
    Last edited by Philip M; 12-23-2013 at 07:34 AM.

    All the code given in this post has been tested and is intended to address the question asked.
    Unless stated otherwise it is not just a demonstration.

  • Users who have thanked Philip M for this post:

    jimbrasalonso (12-24-2013)

  • #3
    New to the CF scene
    Join Date
    Dec 2013
    Posts
    3
    Thanks
    1
    Thanked 0 Times in 0 Posts
    Thank you for you help, that works!

    By the way, do you know if there is a way to dont trigger this pop under in mobile devices?

  • #4
    New to the CF scene
    Join Date
    Dec 2013
    Posts
    3
    Thanks
    1
    Thanked 0 Times in 0 Posts
    Hi, it is possible to avoid open it in mobile devices?


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •