我一直在研究一个新的.net MVC网站,并集成了一些非常棒的jquery UI组件.
我一直在IE8,FF,歌剧和Chrome中测试它,一切看起来都很好.一旦我在IE7中测试,令人惊讶的是它的对话框导致了问题.
基本上发生的事情是,用户点击打开对话框,页面将立即滚动到页面底部.如果页面很长,这尤其糟糕.
这只发生在IE7(可能是6但我甚至不去那里!).
我花了几个小时阅读论坛,似乎我不是唯一一个.
我创建了一个肮脏的黑客,我不热衷但它确实有效.
onclick="SignIn(); <% if(ModelHelperClass.CheckForOldIEVersion() == true) Response.Write("window.scrollTo(0, 0);"); %> return false;">
Run Code Online (Sandbox Code Playgroud)
有没有其他人有这个问题并解决它而不诉诸肮脏的黑客?
即时通讯使用jquery-ui-1.8.custom.min.js和jquery-1.4.2.min.js
任何帮助都非常感谢
Truegilly
更新---
你好,谢谢你的回应 -
在我的页面顶部,我有这个声明......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Run Code Online (Sandbox Code Playgroud)
我包括这些文件....
<link href="/Scripts/css/blitzer/jquery-ui-1.7.2.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/Scripts/jquery-1.4.2.min.js" ></script>
<script type="text/javascript" src="/Scripts/jquery-ui-1.8.1.custom.min.js" ></script>
Run Code Online (Sandbox Code Playgroud)
这是我的登录功能 - 其他对话框非常相似
// Sign in to the site
function SignIn()
{
$("#SignIn").dialog({
bgiframe: true,
modal: true,
resizable: false,
buttons: {
'Sign In': function () {
// the username and password
var Username = $("#Username").val();
var Password = $("#Password").val();
var dataString = 'Username=' + Username + '&Password=' + Password;
// AJAX here....
// when the user clicks sign in, the form is submitted
//$("#SignInForm").submit();
},
Cancel: function () {
$(this).dialog('close');
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
正如我所说,它在除IE7之外的所有浏览器中都能正常工作
我有与IE7相同的问题,并使用最新版本的jquery,并没有任何流浪逗号.
修复结果很简单 - 对CSS的一个简单补充..ui-dialog{ position: absolute; overflow:hidden }在IE7中添加修复它.