window.open глобальная переменная области видимости javascript - PullRequest
0 голосов
/ 13 июля 2011

Может кто-нибудь сказать мне, как я мог бы использовать глобальную переменную области видимости, чтобы я мог закрыть «окно 1» из «окна2»?

У меня есть index.html с 1 ссылкой и 1 кнопкой. Кнопка открывает окно 1, ссылка открывает окно 2. Я хочу, чтобы в окне 2 была кнопка, которая может закрыть окно 1. Пожалуйста, помогите, если можете !! Спасибо !!!

<script type="text/javascript">
function openWin1()
{
myWindow=window.open('','','');
myWindow.document.write("<p><img src=\"flower.jpg\" /></p>");
myWindow.focus();
}
function openWin2()
{
myWindow=window.open('','','');
myWindow.document.write("<style type=\"text/css\">body{background-color:yellow;}</style>
<p><img src=\"bee.jpg\" /></p><input type=\"button\" onclick=\"window.close();\" 
value=\"Close Window 1\" />");
myWindow.focus();
}
</script>
</head>

<body>

<input type="button" value="Window 1" onclick="openWin1();" /><br />
<a href="javascript:openWin2();">Window 2</a>

</body>
</html>

Ответы [ 3 ]

1 голос
/ 13 июля 2011

Локально протестировано (работает в Chrome, должно работать и в других браузерах):

function openWin1() {
    myWindow1 = window.open('google.com', '', '');
    myWindow1.document.write("<p><img src=\"flower.jpg\" /></p>");
    myWindow1.focus();
}

function openWin2() {
    myWindow2 = window.open('yahoo.com', '', '');
    myWindow2.document.write("<style type=\"text/css\">body{background-color:yellow;}</style><p><img src=\"bee.jpg\"></p><input type=\"button\" onclick=\"window.opener.myWindow1.opener = window.self;window.opener.myWindow1.close();\" value=\"Close Window 1\" />");
    myWindow2.focus();
}
0 голосов
/ 13 июля 2011

И "window1", и "window2" могут ссылаться на исходную страницу через window.opener. Поэтому ваша исходная страница может предоставлять глобальную функцию, которую любая из других страниц может вызывать так:

window.opener.closeTheOtherOne();
0 голосов
/ 13 июля 2011

используйте window.opener.mywindow.close() из второго окна, чтобы закрыть первое.Выберите другое имя переменной для второго объекта окна

...