gpt4 book ai didi

asp.net - Firefox "jumps"在 <iframe> (asp.net) 中使用 UpdatePanel 和 SetFocus 时

转载 作者:行者123 更新时间:2023-12-04 06:23:41 25 4
gpt4 key购买 nike

如果我在 iframe 中使用 UpdatePanel 和 SetFocus 函数,我会遇到 Firefox“跳转”(将滚动条移动到顶部)的问题。我将通过发布代码来展示这一点:

首先是网页表单的 HTML:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" onselectedindexchanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
<asp:ListItem>4</asp:ListItem>
<asp:ListItem>5</asp:ListItem>
</asp:DropDownList>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>

现在该表单的代码隐藏(除了一个空的 page_load 和这个之外,它没有任何功能):
 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Label1.Text = DropDownList1.SelectedIndex.ToString();
SetFocus(DropDownList1);
}

好的,此表单使用 iframe 托管在准系统 HTML 页面中。这是 HTML 主机页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div>
bla bla bla
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<iframe src="WebForm1.aspx" style="height: 1263px; width: 1254px"></iframe>
</div>

</body>
</html>

我添加了 br 元素,因为你需要有滚动条才能看到效果。现在,如果您在主机页面中向下滚动并在 Internet Explorer 的 iframe 的下拉列表中选择一个值,则标签会毫无问题地更新,并且下拉列表将获得焦点。

现在在 Firefox 中尝试相同的方法 - 一切都正常,但是您会看到 Firefox 再次将 html 主机页面滚动到顶部的烦人效果!

我尝试使用更大的页面和多个 iframe,它似乎滚动到您在下拉列表中选择值的一个 iframe 的开头。 Safari(我猜是 Chrome)也有同样的行为。 Opera 不会执行这种烦人的“跳转”(与 IE 相同)。

这里有什么问题?

最佳答案

好的,经过大量搜索,我找到了解决方案:

http://forums.asp.net/t/1622050.aspx/1/10

用户“DotNetSeeker”在该线程中有正确的解决方案。

关于asp.net - Firefox "jumps"在 &lt;iframe&gt; (asp.net) 中使用 UpdatePanel 和 SetFocus 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6268252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com