在Javascript window.open()中保持滚动位置

时间:2008-12-16 21:56:23

标签: javascript

当我使用window.open()打开新窗口时,如何保持父页面的滚动位置?父页面返回页面顶部。

这是我目前的代码:

<a href="#" onclick="javascript: window.open('myPage.aspx');">
   Open New Window
</a>

4 个答案:

答案 0 :(得分:9)

<a href="#" onclick="window.open('myPage.aspx');return false;">Open New Window</a>
    事件属性中不需要
  • javascript:
  • 您没有从事件处理程序返回false,因此链接正在关注,它与<a href="#">Scroll to top</a>等效。

答案 1 :(得分:1)

<a href="javascript:void()" onclick="window.open('myPage.aspx');">Open New Window</a>

应该这样做。正如其他人所提到的那样,#正试图进入一个不存在的锚点,这会导致浏览器滚动到顶部。您不希望删除href属性,因为某些浏览器不会将没有href属性的<a>标记视为用于样式目的的链接,并且您必须定义其他CSS规则以使链接看起来像其他您网站上的链接。

此外,为什么有一个href属性,然后尝试通过始终从处理程序返回false来阻止事件。在我看来,这种方式比这里提出的其他方式更清晰。

答案 2 :(得分:0)

我认为问题在于您的链接指向空的#(href="#"),浏览器将其解释为“页面顶部”。

尝试从锚标记中删除href属性。 onclick属性应该足以满足您的需求。

答案 3 :(得分:0)

对于那些没有javascript或禁用javascript的人来说,保持页面可访问是很好的:

<a href="myPage.aspx" target="_blank" onclick="window.open('myPage.aspx');return false;">Open New Window</a>

target =“_ blank”将在新窗口(或标签页)中打开。如果客户端没有JS,那么它仍然会打开页面,而不是在JS调用的窗口中。