如何从弹出窗口中创建超链接?

时间:2012-03-01 10:39:53

标签: javascript internet-explorer

我需要在弹出窗口中指定用window.createPopup();打开的链接。

但是,如果我点击一个链接,没有任何反应。看来,浏览器会忽略href属性。

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

点击此链接不会重定向到“test.html” - 没有任何事情会像href="#"那样发生。

请不要“不要使用此方法,因为它只是IE”评论。

我读过,我需要指定一个目标。

如何让我的链接正常工作?

1 个答案:

答案 0 :(得分:1)

IE的Popup对象是单独的窗口,具有单独的文档,无法获得焦点且无法导航。我的猜测是你不想导航弹出窗口,你可能想要导航弹出窗口的开启者。您可以使用的一个技巧是在创建弹出对象时设置对父窗口的引用:

var myPopup = window.createPopup();

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

然后,在您的HTML或JavaScript代码中,向链接添加事件处理程序,以使所有者窗口导航到指定的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);