我正在尝试编写一个简单的对话框,该对话框由网站上的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>
答案 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');
}