ÐÑплÑваÑÑее окно («попап» â Ð¾Ñ Ð°Ð½Ð³Ð». Popup window) â один из ÑÑаÑейÑÐ¸Ñ ÑпоÑобов показаÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ ÐµÑÑ Ð¾Ð´Ð¸Ð½ докÑменÑ.
Ð ÑÑой ÑÑаÑÑе Ð¼Ñ ÑаÑÑмоÑÑим оÑкÑÑÑие окон и ÑÑд ÑÐ¾Ð½ÐºÐ¸Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñов, коÑоÑÑе Ñ ÑÑим ÑвÑзанÑ.
ÐÑоÑÑейÑий пÑимеÑ:
window.open("http://ya.ru");
â¦ÐÑи запÑÑке оÑкÑоеÑÑÑ Ð½Ð¾Ð²Ð¾Ðµ окно Ñ ÑказаннÑм URL.
ÐолÑÑинÑÑво бÑаÑзеÑов по ÑмолÑÐ°Ð½Ð¸Ñ ÑоздаÑÑ Ð½Ð¾Ð²ÑÑ Ð²ÐºÐ»Ð°Ð´ÐºÑ Ð²Ð¼ÐµÑÑо оÑделÑного окна, но ÑÑÑÑ Ð´Ð°Ð»ÐµÐµ Ð¼Ñ Ñвидим, ÑÑо можно и «заказаÑÑ» именно окно.
ÐлокиÑовÑик вÑплÑваÑÑÐ¸Ñ Ð¾ÐºÐ¾Ð½
РекламнÑе Ð¿Ð¾Ð¿Ð°Ð¿Ñ Ð¾ÑÐµÐ½Ñ Ð½Ð°Ð´Ð¾ÐµÐ»Ð¸ поÑеÑиÑелÑм, аж Ñо вÑемÑн 20-го века, поÑÑÐ¾Ð¼Ñ ÑовÑеменнÑе бÑаÑзеÑÑ Ð²ÑплÑваÑÑие окна обÑÑно блокиÑÑÑÑ. ÐÑи ÑÑом полÑзоваÑелÑ, конеÑно, Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð½Ð°ÑÑÑойки блокиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð½ÐºÑеÑного ÑайÑа.
ÐÑплÑваÑÑее окно блокиÑÑеÑÑÑ Ð² Ñом ÑлÑÑае, еÑли вÑзов window.open пÑоизоÑÑл не в ÑезÑлÑÑаÑе дейÑÑÐ²Ð¸Ñ Ð¿Ð¾ÑеÑиÑелÑ.
Ðак же бÑаÑÐ·ÐµÑ Ð¿Ð¾Ð½Ð¸Ð¼Ð°ÐµÑ â поÑеÑиÑÐµÐ»Ñ Ð²Ñзвал оÑкÑÑÑие окна или неÑ?
ÐÐ»Ñ ÑÑого пÑи ÑабоÑе ÑкÑипÑа он Ñ ÑÐ°Ð½Ð¸Ñ Ð²Ð½ÑÑÑенний «Ñлаг», коÑоÑÑй говоÑÐ¸Ñ â иниÑииÑовал поÑеÑиÑÐµÐ»Ñ Ð²Ñполнение или неÑ. ÐапÑимеÑ, пÑи клике на ÐºÐ½Ð¾Ð¿ÐºÑ Ð²ÐµÑÑ ÐºÐ¾Ð´, коÑоÑÑй вÑполниÑÑÑ Ð² ÑезÑлÑÑаÑе, вклÑÑÐ°Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñе вÑзовÑ, бÑÐ´ÐµÑ Ð¸Ð¼ÐµÑÑ Ñлаг «иниÑииÑовано поÑеÑиÑелем» и Ð¿Ð¾Ð¿Ð°Ð¿Ñ Ð¿Ñи ÑÑом ÑазÑеÑенÑ.
РеÑли код бÑл на ÑÑÑаниÑе и вÑполнилÑÑ Ð°Ð²ÑомаÑиÑеÑки пÑи ÐµÑ Ð·Ð°Ð³ÑÑзке â Ñ Ð½ÐµÐ³Ð¾ ÑÑого Ñлага не бÑдеÑ. ÐÐ¾Ð¿Ð°Ð¿Ñ Ð±ÑдÑÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸ÑованÑ.
ÐолнÑй ÑинÑакÑÐ¸Ñ window.open
ÐолнÑй ÑинÑакÑиÑ:
win = window.open(url, name, params)
ФÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ ÑÑÑÐ»ÐºÑ Ð½Ð° обÑÐµÐºÑ window нового окна, либо null, еÑли окно бÑло заблокиÑовано бÑаÑзеÑом.
ÐаÑамеÑÑÑ:
url- URL Ð´Ð»Ñ Ð·Ð°Ð³ÑÑзки в новое окно.
name- ÐÐ¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ окна. ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸ÑполÑзовано в паÑамеÑÑе
targetв ÑоÑÐ¼Ð°Ñ . ÐÑли позднее вÑзваÑÑwindow.open()Ñ Ñем же именем, Ñо бÑаÑзеÑÑ (кÑоме IE) заменÑÑÑ ÑÑÑеÑÑвÑÑÑее окно на новое. params- СÑÑока Ñ ÐºÐ¾Ð½ÑигÑÑаÑией Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ окна. СоÑÑÐ¾Ð¸Ñ Ð¸Ð· паÑамеÑÑов, пеÑеÑиÑленнÑÑ ÑеÑез запÑÑÑÑ. ÐÑобелов в ней бÑÑÑ Ð½Ðµ должно.
ÐнаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов params.
- ÐаÑÑÑойки ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾ÐºÐ½Ð°:
left/top(ÑиÑло)-
ÐооÑдинаÑÑ Ð²ÐµÑÑ Ð½ÐµÐ³Ð¾ левого Ñгла оÑноÑиÑелÑно ÑкÑана. ÐгÑаниÑение: новое окно не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð·Ð¸ÑиониÑовано за пÑеделами ÑкÑана.
width/height(ÑиÑло)-
ШиÑина/вÑÑоÑа нового окна. ÐинималÑнÑе знаÑÐµÐ½Ð¸Ñ Ð¾Ð³ÑаниÑенÑ, Ñак ÑÑо невозможно ÑоздаÑÑ Ð½ÐµÐ²Ð¸Ð´Ð¸Ð¼Ð¾Ðµ окно Ñ Ð½ÑлевÑми ÑазмеÑами.
ÐÑли кооÑдинаÑÑ Ð¸ ÑазмеÑÑ Ð½Ðµ ÑказанÑ, Ñо обÑÑно бÑаÑÐ·ÐµÑ Ð¾ÑкÑÑÐ²Ð°ÐµÑ Ð½Ðµ окно, а новÑÑ Ð²ÐºÐ»Ð°Ð´ÐºÑ.
- СвойÑÑва окна:
menubar(yes/no)- СкÑÑÑÑ Ð¸Ð»Ð¸ показаÑÑ ÑÑÑÐ¾ÐºÑ Ð¼ÐµÐ½Ñ Ð±ÑаÑзеÑа.
toolbar(yes/no)- ÐоказаÑÑ Ð¸Ð»Ð¸ ÑкÑÑÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ Ð½Ð°Ð²Ð¸Ð³Ð°Ñии бÑаÑзеÑа (кнопки назад, впеÑÑд, обновиÑÑ ÑÑÑаниÑÑ Ð¸ оÑÑалÑнÑе) в новом окне.
location(yes/no)- ÐоказаÑÑ/ÑкÑÑÑÑ Ð¿Ð¾Ð»Ðµ URL-адÑеÑа в новом окне. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Firefox и IE не позволÑÑÑ ÑкÑÑваÑÑ ÑÑÑÐ¾ÐºÑ Ð°Ð´ÑеÑа.
status(yes/no)- ÐоказаÑÑ Ð¸Ð»Ð¸ ÑкÑÑÑÑ ÑÑÑÐ¾ÐºÑ ÑоÑÑоÑниÑ. С дÑÑгой ÑÑоÑонÑ, бÑаÑÐ·ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð² пÑинÑдиÑелÑном поÑÑдке показаÑÑ ÑÑÑÐ¾ÐºÑ ÑоÑÑоÑниÑ.
resizable(yes/no)- ÐозволÑÐµÑ Ð¾ÑклÑÑиÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑ ÑазмеÑÑ Ð½Ð¾Ð²Ð¾Ð³Ð¾ окна. ÐнаÑение
noобÑÑно неÑдобно поÑеÑиÑелÑм. scrollbars(yes/no)- РазÑеÑÐ°ÐµÑ ÑбÑаÑÑ Ð¿Ð¾Ð»Ð¾ÑÑ Ð¿ÑокÑÑÑки Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ окна. ÐнаÑение
noобÑÑно неÑдобно поÑеÑиÑелÑм.
- ÐÑÑ ÐµÑÑÑ Ð½ÐµÐ±Ð¾Ð»ÑÑое колиÑеÑÑво не кÑоÑÑ-бÑаÑзеÑнÑÑ ÑвойÑÑв, коÑоÑÑе обÑÑно не иÑполÑзÑÑÑÑÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑзнаÑÑ Ð¾ Ð½Ð¸Ñ Ð² докÑменÑаÑии, напÑÐ¸Ð¼ÐµÑ MDN: window.open.
ÐÑаÑÐ·ÐµÑ Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ Ðº ÑÑим паÑамеÑÑам инÑеллекÑÑалÑно. Ðн Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоигноÑиÑоваÑÑ Ð¸Ñ ÑаÑÑÑ Ð¸Ð»Ð¸ даже вÑе, они ÑкоÑее ÑвлÑÑÑÑÑ Â«Ð¿Ð¾Ð¶ÐµÐ»Ð°Ð½Ð¸Ñми», нежели «ÑÑебованиÑми».
ÐажнÑе моменÑÑ:
- ÐÑли пÑи вÑзове
openÑказан ÑолÑко пеÑвÑй паÑамеÑÑ, паÑамеÑÑ Ð¾ÑÑÑÑÑÑвÑеÑ, Ñо иÑполÑзÑÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ. ÐбÑÑно пÑи ÑÑом бÑÐ´ÐµÑ Ð¾ÑкÑÑÑо не окно, а вкладка, ÑÑо заÑаÑÑÑÑ Ð±Ð¾Ð»ÐµÐµ Ñдобно. - ÐÑли Ñказана ÑÑÑока Ñ Ð¿Ð°ÑамеÑÑами, но некоÑоÑÑе
yes/noпаÑамеÑÑÑ Ð¾ÑÑÑÑÑÑвÑÑÑ, Ñо бÑаÑÐ·ÐµÑ Ð²ÑÑÑавлÑÐµÑ Ð¸Ñ Ð²no. ÐоÑÑÐ¾Ð¼Ñ ÑбедиÑеÑÑ, ÑÑо вÑе нÑжнÑе вам паÑамеÑÑÑ Ð²ÑÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð²yes. - Ðогда не Ñказан
top/left, Ñо бÑаÑÐ·ÐµÑ Ð¾ÑкÑÐ¾ÐµÑ Ð¾ÐºÐ½Ð¾ Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑим ÑмеÑением оÑноÑиÑелÑно левого веÑÑ Ð½ÐµÐ³Ð¾ Ñгла поÑледнего оÑкÑÑÑого окна. - ÐÑли не ÑказанÑ
width/height, новое окно бÑÐ´ÐµÑ Ñакого же ÑазмеÑа, как поÑледнее оÑкÑÑÑое.
ÐоÑÑÑп к Ð½Ð¾Ð²Ð¾Ð¼Ñ Ð¾ÐºÐ½Ñ
ÐÑзов window.open возвÑаÑÐ°ÐµÑ ÑÑÑÐ»ÐºÑ Ð½Ð° новое окно. Ðна Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸ÑполÑзована Ð´Ð»Ñ Ð¼Ð°Ð½Ð¸Ð¿ÑлÑÑии ÑвойÑÑвами окна, Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ URL, доÑÑÑпа к его пеÑеменнÑм и Ñ.п.
РпÑимеÑе ниже Ð¼Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½Ñем новое окно ÑодеÑжимÑм Ñеликом из JavaScript:
var newWin = window.open("about:blank", "hello", "width=200,height=200");
newWin.document.write("ÐÑивеÑ, миÑ!");
РздеÑÑ Ð¼Ð¾Ð´Ð¸ÑиÑиÑÑем ÑодеÑжимое поÑле загÑÑзки:
var newWin = window.open('/', 'example', 'width=600,height=400');
alert(newWin.location.href); // (*) about:blank, загÑÑзка еÑÑ Ð½Ðµ наÑалаÑÑ
newWin.onload = function() {
// ÑоздаÑÑ div в докÑменÑе нового окна
var div = newWin.document.createElement('div'),
body = newWin.document.body;
div.innerHTML = 'ÐобÑо пожаловаÑÑ!'
div.style.fontSize = '30px'
// вÑÑавиÑÑ Ð¿ÐµÑвÑм ÑлеменÑом в body нового окна
body.insertBefore(div, body.firstChild);
}
ÐбÑаÑим внимание: ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле window.open новое окно еÑÑ Ð½Ðµ загÑÑжено. ÐÑо демонÑÑÑиÑÑÐµÑ alert в ÑÑÑоке (*). ÐоÑÑÐ¾Ð¼Ñ Ð² пÑимеÑе вÑÑе окно модиÑиÑиÑÑеÑÑÑ Ð¿Ñи onload. Ðожно бÑло и поÑÑавиÑÑ Ð¾Ð±ÑабоÑÑик на DOMContentLoaded Ð´Ð»Ñ newWin.document.
СвÑÐ·Ñ Ð¼ÐµÐ¶Ð´Ñ Ð¾ÐºÐ½Ð°Ð¼Ð¸ â двÑÑ ÑÑоÑоннÑÑ.
РодиÑелÑÑкое окно полÑÑÐ°ÐµÑ ÑÑÑÐ»ÐºÑ Ð½Ð° новое ÑеÑез window.open, а доÑеÑнее â ÑÑÑÐ»ÐºÑ Ð½Ð° ÑодиÑÐµÐ»Ñ window.opener.
Ðно Ñоже Ð¼Ð¾Ð¶ÐµÑ ÐµÐ³Ð¾ модиÑиÑиÑоваÑÑ.
ÐÑли запÑÑÑиÑÑ Ð¿ÑÐ¸Ð¼ÐµÑ Ð½Ð¸Ð¶Ðµ, Ñо новое окно Ð·Ð°Ð¼ÐµÐ½Ð¸Ñ ÑодеÑжимое ÑекÑÑего на 'Test':
var newWin = window.open("about:blank", "hello", "width=200,height=200");
newWin.document.write(
"<script>window.opener.document.body.innerHTML = 'Test'</scr" + "ipt>"
);
ÐолÑÑинÑÑво дейÑÑвий, оÑобенно полÑÑение ÑодеÑжимого окна и его пеÑеменнÑÑ , Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ð»Ð¸ÑÑ Ð² Ñом ÑлÑÑае, еÑли URL нового окна пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¸Ð· Ñого же иÑÑоÑника (англ. â «Same Origin»), Ñ.е. ÑовпадаÑÑ Ð´Ð¾Ð¼ÐµÐ½, пÑоÑокол и поÑÑ.
ÐнаÑе говоÑÑ, еÑли новое окно ÑодеÑÐ¶Ð¸Ñ Ð´Ð¾ÐºÑÐ¼ÐµÐ½Ñ Ñ Ñого же ÑайÑа.
ÐолÑÑе инÑоÑмаÑии об ÑÑом бÑÐ´ÐµÑ Ð¿Ð¾Ð·Ð¶Ðµ, в главе ÐÑоÑÑ-доменнÑе огÑаниÑÐµÐ½Ð¸Ñ Ð¸ Ð¸Ñ Ð¾Ð±Ñ Ð¾Ð´.
СобÑÑиÑ
Ðаиболее важнÑе ÑобÑÑÐ¸Ñ Ð¿Ñи ÑабоÑе Ñ Ð¾ÐºÐ½Ð¾Ð¼ бÑаÑзеÑа:
onresizeâ ÑобÑÑие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑазмеÑа окна.onscrollâ ÑобÑÑие пÑи пÑокÑÑÑке окна.onloadâ полноÑÑÑÑ Ð·Ð°Ð³ÑÑзилаÑÑ ÑÑÑаниÑа Ñо вÑеми ÑеÑÑÑÑами.onfocus/onblurâ полÑÑение/поÑеÑÑ ÑокÑÑа.
ÐеÑÐ¾Ð´Ñ Ð¸ ÑвойÑÑва
window.closed- СвойÑÑво
window.closedÑавноtrue, еÑли окно закÑÑÑо. ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸ÑполÑзовано, ÑÑÐ¾Ð±Ñ Ð¿ÑовеÑиÑÑ, закÑÑл ли поÑеÑиÑÐµÐ»Ñ Ð¿Ð¾Ð¿Ð°Ð¿. window.close()- ÐакÑÑÐ²Ð°ÐµÑ Ð¿Ð¾Ð¿Ð°Ð¿ без пÑедÑпÑеждений и Ñведомлений. ÐообÑе, меÑод
close()можно вÑзваÑÑ Ð´Ð»Ñ Ð»Ñбого окна, в Ñом ÑиÑле, ÑекÑÑего. Ðо еÑли окно оÑкÑÑÑо не Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑwindow.open(), Ñо бÑаÑÐ·ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоигноÑиÑоваÑÑ Ð²Ñзовcloseили запÑоÑиÑÑ Ð¿Ð¾Ð´ÑвеÑждение.
ÐеÑемеÑение и изменение ÑазмеÑов окна
СÑÑеÑÑвÑÐµÑ Ð½ÐµÑколÑко меÑодов Ð´Ð»Ñ Ð¿ÐµÑемеÑениÑ/Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑазмеÑов окна.
win.moveBy(x,y)- ÐеÑемеÑÐ°ÐµÑ Ð¾ÐºÐ½Ð¾ оÑноÑиÑелÑно ÑекÑÑего Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ð°
xпикÑелей впÑаво иyпикÑелей вниз. ÐопÑÑкаÑÑÑÑ Ð¾ÑÑиÑаÑелÑнÑе знаÑениÑ. win.moveTo(x,y)- ÐеÑÐµÐ´Ð²Ð¸Ð³Ð°ÐµÑ Ð¾ÐºÐ½Ð¾ в заданнÑÑ ÐºÐ¾Ð¾ÑдинаÑами
xиyÑоÑÐºÑ ÑкÑана мониÑоÑа. win.resizeBy(width,height)- ÐзменÑÐµÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¾ÐºÐ½Ð° на заданнÑÑ Ð²ÐµÐ»Ð¸ÑинÑ
width/height(ÑиÑина/вÑÑоÑа). ÐопÑÑкаÑÑÑÑ Ð¾ÑÑиÑаÑелÑнÑе знаÑениÑ. win.resizeTo(width,height)- ÐзменÑÐµÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¾ÐºÐ½Ð° на заданное знаÑение.
ЧÑÐ¾Ð±Ñ Ð¿ÑедоÑвÑаÑиÑÑ Ð¸ÑполÑзование ÑÑиÑ
меÑодов Ñ Ð¿Ð»Ð¾Ñ
ими ÑелÑми, бÑаÑзеÑÑ ÑаÑÑо блокиÑÑÑÑ Ð¸Ñ
вÑполнение. Ðак пÑавило, они ÑабоÑаÑÑ, еÑли окно win оÑкÑÑÑо вÑзовом window.open из JavaScript ÑекÑÑей ÑÑÑаниÑÑ Ð¸ в нÑм Ð½ÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ
вкладок.
ÐамеÑим, ÑÑо JavaScript не Ð¼Ð¾Ð¶ÐµÑ Ð½Ð¸ ÑвеÑнÑÑÑ Ð½Ð¸ ÑазвеÑнÑÑÑ Ð½Ð¸ «макÑимизиÑоваÑÑ» (Windows) окно.
ÐÑи ÑÑнкÑии опеÑаÑионной ÑиÑÑÐµÐ¼Ñ Ð¾Ñ Frontend-ÑазÑабоÑÑиков ÑкÑÑÑÑ. ÐÑзовÑ, опиÑаннÑе вÑÑе, в ÑлÑÑае ÑвÑÑнÑÑого или макÑимизиÑованного окна не ÑабоÑаÑÑ.
ÐÑокÑÑÑка окна
ÐÑокÑÑÑка окна ÑÑебÑеÑÑÑ, пожалÑй, ÑаÑе вÑего. ÐÑ Ñже говоÑили о ней в главе РазмеÑÑ Ð¸ пÑокÑÑÑка ÑÑÑаниÑÑ:
win.scrollBy(x,y)- ÐÑокÑÑÑка окна на заданное ÑиÑло пикÑелей впеÑÑд или назад. ÐопÑÑкаÑÑÑÑ Ð¾ÑÑиÑаÑелÑнÑе знаÑениÑ.
win.scrollTo(x,y)- ÐÑокÑÑÑÐ¸Ð²Ð°ÐµÑ Ð¾ÐºÐ½Ð¾ к заданнÑм кооÑдинаÑам.
elem.scrollIntoView(top)- ÐÑÐ¾Ñ Ð¼ÐµÑод пÑокÑÑÑки вÑзÑваеÑÑÑ Ð½Ð° ÑлеменÑе. ÐÑи ÑÑом окно пÑокÑÑÑиваеÑÑÑ Ñак, ÑÑÐ¾Ð±Ñ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð±Ñл полноÑÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼. ÐÑли паÑамеÑÑ
topÑавенtrueили не задан, Ñо веÑÑ ÑлеменÑа ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ Ð²ÐµÑÑ Ð¾Ð¼ окна. ÐÑли он Ñавенfalse, Ñо окно пÑокÑÑÑиваеÑÑÑ Ñак, ÑÑÐ¾Ð±Ñ Ð½Ð¸Ð¶Ð½Ð¸Ð¹ кÑай ÑлеменÑа Ñовпал Ñ Ð½Ð¸Ð¶Ð½Ð¸Ð¼ кÑаем окна.
ÐÑого
- ÐÑплÑваÑÑее окно оÑкÑÑваеÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð²Ñзова
window.open(url, name, params). - ÐеÑод
window.openвозвÑаÑÐ°ÐµÑ ÑÑÑÐ»ÐºÑ Ð½Ð° новое окно илиnull, еÑли окно бÑло заблокиÑовано. - СовÑеменнÑе бÑаÑзеÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÑÑÑ Ð¾ÐºÐ½Ð°, еÑли
window.openвÑзвано не в ÑезÑлÑÑаÑе дейÑÑÐ²Ð¸Ñ Ð¿Ð¾ÑеÑиÑелÑ. - ÐбÑÑно оÑкÑÑваеÑÑÑ Ð²ÐºÐ»Ð°Ð´ÐºÐ°, но еÑли Ð·Ð°Ð´Ð°Ð½Ñ ÑазмеÑÑ Ð¸ позиÑÐ¸Ñ â Ñо именно окно.
- Ðовое окно Ð¸Ð¼ÐµÐµÑ ÑÑÑÐ»ÐºÑ Ð½Ð° ÑодиÑелÑÑкое в
window.opener. - Ðкна могÑÑ Ð¾Ð±ÑаÑÑÑÑ Ð¼ÐµÐ¶Ð´Ñ Ñобой как Ñгодно, еÑли они из одного иÑÑоÑника. ÐнаÑе дейÑÑвÑÑÑ Ð¶ÑÑÑкие огÑаниÑÐµÐ½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑи.
ÐÑплÑваÑÑие окна иÑполÑзÑÑÑÑÑ Ð½ÐµÑаÑÑо. ÐÐµÐ´Ñ Ð·Ð°Ð³ÑÑзиÑÑ Ð½Ð¾Ð²ÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ динамиÑеÑки, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑеÑ
нологии AJAX, а показаÑÑ â в ÑлеменÑе <div>, ÑаÑположеннÑм над ÑÑÑаниÑей (z-index). ÐÑÑ Ð¾Ð´Ð½Ð° алÑÑеÑнаÑива â Ñег <iframe>.
Ðо в некоÑоÑÑÑ ÑлÑÑаÑÑ Ð²ÑплÑваÑÑие окна бÑваÑÑ Ð¾ÑÐµÐ½Ñ Ð´Ð°Ð¶Ðµ полезнÑ. ÐапÑимеÑ, оÑделÑное окно ÑеÑвиÑа онлайн-конÑÑлÑÑаÑий. ÐоÑеÑиÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ñ Ð¾Ð´Ð¸ÑÑ Ð¿Ð¾ ÑайÑÑ Ð² оÑновном окне, а обÑаÑÑÑÑ Ð² ÑаÑе â во вÑпомогаÑелÑном.
ÐÑли Ð²Ñ Ñ
оÑиÑе иÑполÑзоваÑÑ Ð²ÑплÑваÑÑее окно, пÑедÑпÑедиÑе поÑеÑиÑÐµÐ»Ñ Ð¾Ð± ÑÑом, Ñак же и пÑи иÑполÑзовании target="_blank" в ÑÑÑлкаÑ
или ÑоÑмаÑ
. Ðконка оÑкÑÑваÑÑегоÑÑ Ð¾ÐºÐ¾Ñка на ÑÑÑлке Ð¿Ð¾Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑеÑиÑÐµÐ»Ñ Ð¿Ð¾Ð½ÑÑÑ, ÑÑо пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¸ не поÑеÑÑÑÑ Ð¾Ð±Ð° окна из Ð¿Ð¾Ð»Ñ Ð·ÑениÑ.
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)