jquery Ui对话框和ie8
问题描述:
我正在使用jquery对话框来打开窗体中的标志。它在ff,chrome甚至ie6,7 上工作正常,但它在ie8上不工作。jquery Ui对话框和ie8
这是我的函数:
function showSignInDialog() {
var email = GetEmailFromCookie();
if (!IsNullOrUndefined(email)) {
$("input[name$='LoginEmail']").val(email);
$("#chkRememberMe").attr("checked", "checked");
}
if (!$('#signInForm').dialog('isOpen')) {
$('#signInForm').dialog({ bgiframe: true,
modal: true,
resizable: false,
width: 330,
title: 'EZtrader Login',
buttons: { "Login": doLogin }
});
$('#signInForm').dialog('open');
}
}
在IE8我得到一个反应迟钝的脚本,这意味着存在某种形式的无限循环。 我试着调试它,当我尝试打开对话框时,循环出现在jquery-ui js文件中。 我想也许这已经是与 “HTML解析错误:无法修改父容器元素的子元素被关闭之前(KB927917)” 我约在这里读到:http://blogs.msdn.com/ie/archive/2008/04/23/what-happened-to-operation-aborted.aspx
,并试图移动脚本块和页面周围的对话框,但似乎没有任何工作。 请帮助...
答
遇到完全相同的一组问题。要摆脱第一个问题,“无法修改...”错误,请将您的脚本标记设置为deferred = deferred。
第二个问题与我能找到的ie8的JavaScript解析器有关。似乎没有答案,虽然我没有想过iframe,如果这可以解决问题,奖金!
答
必须仅在document.ready上使用自动完成功能。 请将自动完成的初始化代码移动到$(document).ready(function(){ [place here] })
块中,并且全部都可以正常工作。
(来自@redsquare的评论):你可以粘贴所有的代码,特别是在按钮选项中指定的doLogin函数。你也可以解释问题出在哪里。点击对话框内的按钮后,还是对话框没有显示? – 2009-08-09 11:28:12
其实这是一个答案不是评论....! – redsquare 2009-08-09 11:30:01
对话框在创建时打开,除非使用autoOpen选项另行指定。我想知道IE浏览器是否因为你打开它两次,一次声明它,然后用对话框('打开'); – jfsk3 2009-08-09 12:44:18