浏览到同一页面而不刷新

时间:2013-02-12 01:30:09

标签: javascript asp.net html5

我是ASP,JS,HTML5的菜鸟。我正在写一个由ASP.net驱动的快速内部网站,它有Prev和Next按钮。每次用户按下“下一步”按钮时,下一个书签都需要滚动到。但是,在我看来,每次都会从服务器刷新页面。

在没有刷新的情况下,创建指向同一页面的JavaScript链接的最简单方法是什么?目前我的id已经超过'#1'并且我正在使用

button onclick="JavaScript:window.location.hash = '#1'

我尝试了很多变化,似乎都没有。

请注意:我只是尝试导航到同一页面上的书签。没有数据需要转到服务器,页面也不需要以任何方式改变。

(编辑:在代码中将'replace'更改为'hash',因为这会引起混淆)。

4 个答案:

答案 0 :(得分:3)

不要使用window.location.replace,而只需分配到window.locationwindow.location.hrefwindow.location.hash

我担心其他的回答者要么不理解这个问题,要么不理解这些问题。当然,您可以跳转到ID标识的页面上的某个位置,而无需重新加载。这是浏览器工作方式的基础。这是window.location.reload函数存在的一个原因,所以如果你愿意,你可以重新加载它。您也不仅限于使用href来导航到ID;当然你可以使用window.location(只是没有window.location.replace)。

更新:您尝试做的事情没有任何问题,页面无法重新加载。您的页面中必须有其他内容导致此行为,但我无法想象它可能是什么。尝试一个真正简单的测试用例,然后从那里开始工作。

答案 1 :(得分:1)

您只需要将一些元素与id属性和<a href>元素链接到具有哈希值的项目:

<h3 id="section_1">Section One</h3>
<p>...</p>
<div>Prev | <a href="#section_2">Next</a></div>

<h3 id="section_2">Section Two</h3>
<p>...</p>
<div><a href="#section_1">Prev</a> | <a href="#section_3">Next</a></div>

<h3 id="section_3">Section Three</h3>
<p>...</p>
<div><a href="#section_2">Prev</a> | Next</div>

这些内容......

答案 2 :(得分:1)

事实证明我的按钮位于表格内。除了使用window.location.hash ='#1'之外,还必须将按钮 type 设置为按钮。如果未明确设置按钮类型,则默认情况下会执行提交,这是导致页面刷新的原因。否则,也许按钮不应该是一种形式。

<button type='button' onclick="JavaScript:window.location.hash = '#1'">Navigate without refresh
</button>

答案 3 :(得分:0)

您可能希望查看JQuery Ajax,它可以为您提供所需的行为,即无需刷新页面,执行涉及与服务器通信并获取响应的事情。