适用于所有手机的Popunder脚本

时间:2015-03-17 06:57:55

标签: javascript android

我测试了大约15种不同的popunder脚本,找到适用于所有手机的脚本。以下脚本是我在Galaxy S3上发现并完美运行的最好的脚本,但在Galaxy S5上烦人地弹出。我需要脚本弹出屏幕上的任何操作,以便它在后台打开而不会干扰当前页面。这个脚本拥有我需要的一切,除了它的行为不同,取决于它运行的Android设备。任何人都可以协助编辑这个JavaScript代码,以便在所有Android浏览器上弹出,而不仅仅是一些?

以下是代码:

var puShown = false;
var PopWidth = 1370;
var PopHeight = 800;
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.mediamoby.com/4g9s0hc8/');
    setCookie('popundr', 1, 24 * 60 * 60 * 1000);
  }
}
initPu();

0 个答案:

没有答案