当我使用window.open()打开新窗口时,如何保持父页面的滚动位置?父页面返回页面顶部。
这是我目前的代码:
<a href="#" onclick="javascript: window.open('myPage.aspx');">
Open New Window
</a>
答案 0 :(得分:9)
<a href="#" onclick="window.open('myPage.aspx');return false;">Open New Window</a>
javascript:
。<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调用的窗口中。