Как сделать так, чтобы гиперссылка работала из всплывающего окна? - PullRequest
1 голос
/ 01 марта 2012

Мне нужно указать ссылки в моем всплывающем окне, которое я открываю с помощью window.createPopup();.

Но если я нажму на ссылку, ничего не произойдет.Похоже, что браузер игнорирует атрибут href.

<a href="test.html">test</a>

Нажатие на эту ссылку не перенаправляет на «test.html» - ничего не происходит, как это было бы href="#".

Пожалуйста, не «не используйте этот метод, потому что это только IE» комментарии.

Я прочитал, что мне нужно указать цель.

Как мне заставить мои ссылки работать?

1 Ответ

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

Всплывающие объекты IE - это отдельные окна с отдельными документами, которые не могут сфокусироваться и не могут перемещаться. Я предполагаю, что вы все равно не хотите перемещаться по всплывающему окну, возможно, вы хотите перемещаться по открывателю всплывающего окна. Один трюк, который вы можете использовать, это установить ссылку на родительское окно при создании всплывающего объекта:

var myPopup = window.createPopup();

// Make a connection between the popup and the current window
myPopup.document.parentWindow.owner = window;

Затем в коде HTML или JavaScript добавьте обработчик событий к ссылкам, чтобы окно owner переместилось к указанному href:

<a href="test.html" onclick="owner.location = this.href;">test</a>

В качестве альтернативы, если вы создаете ссылки через DOM, просто добавьте их во время создания:

var myPopup = window.createPopup(),
    link = myPopup.document.createElement("a");

link.href = "test.html";
link.onclick = function () {
    // window refers to the main window, not the popup window
    window.location = this.href;
}

myPopup.document.body.appendChild(link);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...