当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET导航到后面的代码锚点

如何解决《ASP.NET导航到后面的代码锚点》经验,为你挑选了2个好方法。

我有一个简单的Web窗体,代码如下:

//...
//tons of text
//...

//...
//tons of text
//...

POST后我想导航用户到我的主播"消息".我有以下代码:

protected void ButtonSend_Click(object sender, EventArgs e)
{
this.ClientScript.RegisterStartupScript(this.GetType(),
                                        "navigate",
                                        "window.location.hash='#message';",
                                        true);
}

这个简单的JavaScript在Firefox 3.5.2中不起作用 - url在浏览器中更改但页面未导航到锚点.在IE 8中它完美运行.

为什么这个JavaScript代码在Firefox中不起作用?我错过了什么吗?



1> GTD..:

我已经解决了我的问题.在我的锚点存在之前调用了JavaScript代码.这就是Firefox没有滚动页面的原因.

我的代码现在看起来像tihs:

this.ClientScript.RegisterStartupScript(this.GetType(),
                                        "navigate",
                                        "window.onload = function() {window.location.hash='#message';}",
                                         true);

页面加载后,我正在调用我的简单JavaScript函数.

找到解决方案的关键是克莱顿回答.Firebug报告getElementById返回null引用.然后我查看生成的HTML,就像andrewWinn建议的那样 - 在锚点存在之前调用了JavaScript.做了一点谷歌搜索并找到了解决方案.

谢谢你的回答!



2> Cleiton..:

门多萨,您可以使用本机的scrollIntoView函数。

做你想做的,只要写:

this.ClientScript.RegisterStartupScript(this.GetType(),
                                        "navigate",
                                        "document.getElementById('id_of_the_element').scrollIntoView();",
                                        true);

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有