以编程方式滚动到锚标签
考虑下面的代码:
<a href="#label2">GoTo Label2</a> ... [content here] ... <a name="label0"></a>More content <a name="label1"></a>More content <a name="label2"></a>More content <a name="label3"></a>More content <a name="label4"></a>More content
有没有一种方法来模仿点击“GoTo Label2”链接滚动到页面上通过代码适当的地区?
编辑 :一个可以接受的替代方法是滚动到一个唯一的ID,它已经存在于我的网页上的元素。 如果这是一个可行的解决scheme,我将添加锚标签。
如果你还在元素上添加一个ID,这个JS对我来说一般效果很好:
document.getElementById('MyID').scrollIntoView(true);
这是好的,因为它也将定位滚动div等,使内容是可见的。
麦克风。
使用javascript:
window.location.href = '#label2';
如果你需要从后面的服务器/代码来完成,你可以发出这个Javascript并注册为该页面的启动脚本。
从服务器端移到一个锚点,例如c#。
ClientScript.RegisterStartupScript(this.GetType(), "hash", "location.hash = '#form';", true);
我想这会起作用:
window.location="<yourCurrentUri>#label2";
当你使用window.location.hash时没有“#”
解决scheme
document.getElementById('MyID').scrollIntoView(true);
几乎所有的浏览器都能正常工作,而我注意到在某些浏览器或者某些移动设备(比如某些黑莓版本)中,“scrollIntoView”函数无法被识别,所以我会考虑这个解决scheme(比前一个更丑陋) :
window.location.href = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search + "#MyAnchor";
如果元素是一个锚标签,你应该能够做到:
document.getElementsByName('label2')[0].focus();
您只需打开附加名称的新url,例如http://www.mysite.com/mypage.htm#label2
在Javascript中,
location.href = location.href +'#label2';