jQuery UI的对话框和IE

问题描述:

我试图写一个简单的对话框,通过网站上的闪光图片库呼吁,并在此flash动画出现,但它在IE下工作很奇怪,如:jQuery UI的对话框和IE

-sometimes显示几个相同的项目,如何防止打开对话框,如果有一个已经存在? -打开对话框并尝试关闭对话框后,它只是停留在那里,如果我最小化IE并最大化回来,对话框消失。 - 在Firefox下,对话框出现,但加载的内容不能被看到,除非我将鼠标移到对话框上,那时对话框中的内容出现。

这里是我的HTML:

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <link type="text/css" href="/media/style.css" rel="stylesheet" /> 
    <link type="text/css" href="/media/jquery-ui-1.7.2.custom.css" rel="stylesheet" /> 
    <script type="text/javascript" src="/media/jquery.js"></script> 
    <script type="text/javascript" src="/media/jquery-ui-1.7.2.custom.min.js"></script> 
    <script language="javascript">AC_FL_RunContent = 0;</script> 
    <script type="text/javascript" src="/media/AC_RunActiveContent.js"></script> 
    <script type="text/javascript"> 
</script> 
</head> 
<body bgcolor="#000000"> 
<!--url's used in the movie--> 
<!--text used in the movie--> 
<!-- saved from url=(0013)about:internet --> 
<center> 
<script language="javascript"> 
    function showItem(i){ 
      var url = "/item/?i="+i; 
      var dialog = $('<div style="display:hidden"></div>').appendTo('body'); 
      dialog.load(
       url, 
       {}, 
       function (responseText, textStatus, XMLHttpRequest) { 
        dialog.dialog({show:'blind',hide: 'slide',resizable: false,width: 'auto',height: 'auto',modal:true}); 
        //kapat: buttons: { "Kapat": function() { $(this).dialog("close"); } } 
       } 
      ); 
      return false; 
    } 


    if (AC_FL_RunContent == 0) { 
     alert("This page requires AC_RunActiveContent.js."); 
    } else { 
     AC_FL_RunContent(
      'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0', 
      'width', '100%', 
      'height', '600', 
      'src', '/media/preview', 
      'quality', 'high', 
      'pluginspage', 'http://www.macromedia.com/go/getflashplayer', 
      'align', 'middle', 
      'play', 'true', 
      'loop', 'true', 
      'scale', 'noScale', 
      'wmode', 'transparent', 
      'devicefont', 'false', 
      'id', 'preview', 
      'bgcolor', '#2e2e2e', 
      'name', 'preview', 
      'menu', 'true', 
      'allowFullScreen', 'false', 
      'allowScriptAccess','sameDomain', 
      'movie', '/media/preview', 
      'salign', '' 
      ); //end AC code 
    } 
</script> 
<noscript> 
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="1024" height="850" id="preview" align="middle"> 
    <param name="allowScriptAccess" value="sameDomain" /> 
    <param name="allowFullScreen" value="false" /> 
    <param name="movie" value="/media/preview.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /> <embed src="/media//media/preview.swf" quality="high" bgcolor="#000000" width="100%" height="850" name="preview" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> 
    </object> 
</noscript> 
</center> 
</body> 
</html> 
+0

您能否发布一个链接到您的网站?你发布的代码会更有意义:) – jakeisonline 2009-09-27 19:26:50

+0

此刻它不起作用,只在我的本地主机:) – Hellnar 2009-09-27 19:38:39

+0

没有看到一个活的例子,我至少不能帮你。 – jakeisonline 2009-09-27 19:44:17

你可以添加一个ID,你的div和调用对话框上就是isOpen方法来检查,如果它是这样打开......

function showItem(i){ 
      if($("#dialogId").dialog('isOpen') return false; 
      var url = "/item/?i="+i; 
      var dialog = $('<div id="dialogId" style="display:hidden"></div>').appendTo('body'); 

}

还是要检查的div已拍成这样的对话......

 function showItem(i){ 
      if($('#dialogId').is(':data(dialog)')) return false; 
      var url = "/item/?i="+i; 
      var dialog = $('<div id="dialogId" style="display:hidden"></div>').appendTo('body'); 

}