jquery ui对话框和IE

时间:2009-09-27 19:22:55

标签: jquery flash jquery-ui internet-explorer-8

我正在尝试编写一个简单的对话框,该对话框由网站上的flash图库调用,并出现在这个flash动画中,但它在IE下的工作非常奇怪,如:

- 有时显示几个相同的项目,如果有一个已存在的话,如何阻止打开对话框? - 打开一个对话框,当试图关闭它时,它只是停留在那里,如果我最小化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>

1 个答案:

答案 0 :(得分:1)

您可以在div中添加一个id并在对话框中调用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');

}