document.getElementById в другом окне - PullRequest
0 голосов
/ 14 марта 2012

Можно ли получить идентификатор предыдущего родительского окна, если вы запустили дочернее окно с document.location.href="diffPage.htm?name="+string;, где строка будет меняться каждый раз?

В основном у меня главное окно с id=favouritesTab,называется main.html, который переходит в diffPage.htm при вызове функции.

Я пробовал window.parent.document.getelementById(), например

var favouritesScreen = window.parent.document.getElementById('favouritesTab');
if(favouritesScreen.style.display == 'inherit')
{
    ..so on

Но, похоже, это не работает вообще.Кто-нибудь знает, есть ли решение для этого?

1 Ответ

1 голос
/ 14 марта 2012

При условии, что ваша страница размещена в том же домене, доступ к документу в исходном окне возможен возможно через свойство window.opener.

Полная демонстрация здесь: http://jsfiddle.net/eAjqX/1/show/

  1. Нажмите на кнопку, чтобы открыть новое окно.
  2. При нажатии в новом окне вы увидите, что содержимое тела изменяется на значение поля ввода.
  3. Перейдите, используя предоставленную ссылку, на исходной странице.
  4. Повторите шаг 2. Вы увидите, что window.opener.document.getElementById все еще работает.

Код для этой демонстрации (jQuery не требуется):

// New window page:
var i = 0;
document.onclick = function (){
    try {
        alert(window.opener.document.getElementById('test').value);
    } catch (e) {
        alert(e);
    }
};
// Launcher
window.open("http://jsfiddle.net/eAjqX/show");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...