作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 iframe 的 ASP.NET 页面。在该 iframe 内,有一个带有 DefaultFocus 和 DefaultButton 集的表单,如下所示。
<form id="Form1" method="post" runat="server" defaultfocus="txtSearchPhrase" defaultbutton="btnSearch">
最佳答案
我调查了这个,发现了一些有趣的事情。
首先,当您包含 DefaultFocus
时或 DefaultButton
在 ASP .NET WebForms 中的表单上,ASP .NET 将自动发出两件事:
WebForm_AutoFocus
的定义方法。 WebForm_AutoFocus('defaultFocusElementID');
它对 DefaultFocus
都执行此操作和 DefaultButton
设置,但我不确定为什么它需要为 DefaultButton
执行此操作设置。 WebForm_AutoFocus
方法尝试调用
scrollIntoView
元素上的方法,但前提是浏览器被检测为“非 MS DOM”浏览器。奇怪的是,IE11 不被认为是 MS DOM 浏览器,至少就这种方法而言。所以
scrollIntoView
方法旨在在非 IE 浏览器上运行。
scrollIntoView
的实现有关。 IE11 中的方法,但它也可以被视为 MS JS 库中的一个错误,它检测浏览器是否为 MS DOM 浏览器。我不确定 - 无论哪种方式,我都责怪微软。 :)
DefaultFocus
和
DefaultButton
从哲学的角度来看,因为这些是 Microsoft 特定的东西,当您可以使您的代码远离 Microsoft 特定的东西时,您通常应该这样做。特别是当使用“微软方式”完全被破坏时。相反,尝试这样的事情(如果您使用的是 jQuery):
<form data-defaultfocus="search">
<asp:TextBox ID="search" />
</form>
<script type="text/javascript">
// jQuery on document ready
$(function() {
var form = $('form'),
defaultButtonID,
defaultFocusID;
if (form.data('defaultfocus')) {
defaultFocusID = form.data('defaultfocus');
$('#' + defaultFocusID).focus();
}
if (form.data('defaultbutton')) {
defaultButtonID = form.data('defaultbutton');
form.on('keypress', function(event) {
if (event.keyCode === 13) {
__doPostBack(defaultButtonID, '');
}
});
}
});
</script>
这不是经过测试的代码,但您明白了。然后你就可以通过使用
data-defaultbutton
和
data-defaultfocus
在你的表单元素上,而不是微软的方式,它实际上会起作用,如果它不起作用,你可以修复它,因为你控制代码!
When you access an ASP.NET-based webpage by using Internet Explorer 11, the webpage renders the content incorrectly.
Note This issue occurs because Internet Explorer 11 is not recognized as Internet Explorer by ASP.NET.
关于asp.net - Internet Explorer 11 中的 DefaultButton 和 DefaultFocus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19869435/
我有一个包含 iframe 的 ASP.NET 页面。在该 iframe 内,有一个带有 DefaultFocus 和 DefaultButton 集的表单,如下所示。 在 IE11 中查看此页面时
如果我想使用 ASP.NET WebForms 有条件地设置哪个字段应该具有焦点,我会设置 Page.Form.DefaultFocus 。 MVC3 Razor 的方法是什么? 背景:我有一个登录页
我是一名优秀的程序员,十分优秀!