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

,并试图移动脚本块和页面周围的对话框,但似乎没有任何工作。 请帮助...

+0

(来自@redsquare的评论):你可以粘贴所有的代码,特别是在按钮选项中指定的doLogin函数。你也可以解释问题出在哪里。点击对话框内的按钮后,还是对话框没有显示? – 2009-08-09 11:28:12

+0

其实这是一个答案不是评论....! – redsquare 2009-08-09 11:30:01

+0

对话框在创建时打开,除非使用autoOpen选项另行指定。我想知道IE浏览器是否因为你打开它两次,一次声明它,然后用对话框('打开'); – jfsk3 2009-08-09 12:44:18

这似乎是它: http://dev.jqueryui.com/ticket/4758

IE8的不正确处理window.resize功能。您需要根据我所知道的来调整jquery-ui的本地版本。

遇到完全相同的一组问题。要摆脱第一个问题,“无法修改...”错误,请将您的脚本标记设置为deferred = deferred。

第二个问题与我能找到的ie8的JavaScript解析器有关。似乎没有答案,虽然我没有想过iframe,如果这可以解决问题,奖金!

必须仅在document.ready上使用自动完成功能。 请将自动完成的初始化代码移动到$(document).ready(function(){ [place here] })块中,并且全部都可以正常工作。