2014-10-30 4 views
-1

Я должен открыть всплывающие окна БЕЗ текущего активного экрана с использованием java-скрипта. Вот мой простой код.Всплывающее окно Javascript под окном (фоновое окно)

var win = window.open('http://yahoo.com',null,"height=400,width=600,status=yes,toolbar=no,scrollbars=yes,menubar=yes,location=yes"); 
win.blur(); 
this.window.focus(); 

Но это не работает в любом браузере. Он просто открывает всплывающее окно. Я ссылался на this question из stackoverflow. Но это не сработает. Моя цель - создать фоновое окно во всех браузерах. Кто-то мне поможет

+0

Какой браузер вы тестируете? – Quince

+0

Вы действительно пытаетесь открыть yahoo или это дочернее окно ваше? – artm

+0

все браузеры –

ответ

1

Вы не можете этого сделать. Современные веб-браузеры не позволяют веб-сайтам украсть фокус с других вкладок (потому что это может стать довольно грязным для пользователей). Единственное, что вы можете сделать, - это пригласить пользователей открывать новую вкладку (которая не меняет фокус). Или вы можете злоупотреблять предупреждение, чтобы получить фокус на вашу страницу:

var win = window.open('http://yahoo.com',null,"target=_blank,height=400,width=600,status=yes,toolbar=no,scrollbars=yes,menubar=yes,location=yes"); 
alert("Welcome back"); 
+0

Как это достичь. Мне нужно создать фоновое окно –

+0

@ ling.s alert() должен сфокусироваться на главном окне, но afaik, а не на перекрестном браузере –

+0

без предупреждения ??? –

-1
function makePopunder(pUrl) { 
var _parent = (top != self && typeof (top["document"]["location"].toString()) === "string") ? top : self; 
var mypopunder = null; 
var pName = (Math["floor"]((Math["random"]() * 1000) + 1)); 
var pWidth = window["innerWidth"]; 
var pHeight = window["innerHeight"]; 
var pPosX = window["screenX"]; 
var pPosY = window["screenY"]; 
var pWait = 3600; 
pWait = (pWait * 1000); 
var pCap = 50000; 
var todayPops = 0; 
var cookie = "_.mypopunder"; 
var browser = function() { 
    var n = navigator["userAgent"]["toLowerCase"](); 
    var b = { 
     webkit: /webkit/ ["test"](n), 
     mozilla: (/mozilla/ ["test"](n)) && (!/(compatible|webkit)/ ["test"](n)), 
     chrome: /chrome/ ["test"](n), 
     msie: (/msie/ ["test"](n)) && (!/opera/ ["test"](n)), 
     firefox: /firefox/ ["test"](n), 
     safari: (/safari/ ["test"](n) && !(/chrome/ ["test"](n))), 
     opera: /opera/ ["test"](n) 
    }; 
    b["version"] = (b["safari"]) ? (n["match"](/.+(?:ri)[\\/: ]([\\d.]+)/) || [])[1] : (n["match"](/.+(?:ox|me|ra|ie)[\\/: ]([\\d.]+)/) || [])[1]; 
    return b; 
}(); 

function isCapped() { 
    try { 
     todayPops = Math["floor"](document["cookie"]["split"](cookie + "Cap=")[1]["split"](";")[0]); 
    } catch (err) {}; 
    return (pCap <= todayPops || document["cookie"]["indexOf"](cookie + "=") !== -1); 
}; 

function doPopunder(pUrl, pName, pWidth, pHeight, pPosX, pPosY) { 
    if (isCapped()) { 
     return; 
    }; 
    var sOptions = "toolbar=no,scrollbars=yes,location=yes,statusbar=yes,menubar=no,resizable=1,width=" + pWidth.toString() + ",height=" + pHeight.toString() + ",screenX=" + pPosX + ",screenY=" + pPosY; 
    document["onclick"] = function (e) { 
     if (isCapped() || window["pop_clicked"] == 1 || pop_isRightButtonClicked(e)) { 
      //return; 
     }; 
     window["pop_clicked"] = 1; 
     mypopunder = _parent["window"]["open"](pUrl, pName, sOptions); 
     if (mypopunder) { 
      var now = new Date(); 
      document["cookie"] = cookie + "=1;expires=" + new Date(now["setTime"](now["getTime"]() + pWait))["toGMTString"]() + ";path=/"; 
      now = new Date(); 
      document["cookie"] = cookie + "Cap=" + (todayPops + 1) + ";expires=" + new Date(now["setTime"](now["getTime"]() + (84600 * 1000)))["toGMTString"]() + ";path=/"; 
      pop2under(); 
     }; 
    }; 
}; 

function pop2under() { 
    try { 
     mypopunder["blur"](); 
     mypopunder["opener"]["window"]["focus"](); 
     window["self"]["window"]["blur"](); 
     window["focus"](); 
     if (browser["firefox"]) { 
      openCloseWindow(); 
     }; 
     if (browser["webkit"]) { 
      openCloseTab(); 
     }; 
    } catch (e) {}; 
}; 

function openCloseWindow() { 
    var ghost = window["open"]("about:blank"); 
    ghost["focus"](); 
    ghost["close"](); 
}; 

function openCloseTab() { 
    var ghost = document["createElement"]("a"); 
    ghost["href"] = "about:blank"; 
    ghost["target"] = "PopHelper"; 
    document["getElementsByTagName"]("body")[0]["appendChild"](ghost); 
    ghost["parentNode"]["removeChild"](ghost); 
    var clk = document["createEvent"]("MouseEvents"); 
    clk["initMouseEvent"]("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, true, 0, null); 
    ghost["dispatchEvent"](clk); 
    window["open"]("about:blank", "PopHelper")["close"](); 
}; 

function pop_isRightButtonClicked(e) { 
    var rightclick = false; 
    e = e || window["event"]; 
    if (e["which"]) { 
     rightclick = (e["which"] == 3); 
    } else { 
     if (e["button"]) { 
      rightclick = (e["button"] == 2); 
     }; 
    }; 
    return rightclick; 
}; 
if (isCapped()) { 
    return; 
} else { 
    doPopunder(pUrl, pName, pWidth, pHeight, pPosX, pPosY); 
}; 

}

makePopunder ("http://www.yourdomain.com/");