在Jquery UI对话框中使用Uploadify => Chrome和Opera的bug问题

10

我有以下代码:

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" type="text/css" media="screen" href="jquery-ui-1.8.9.custom.css" />
        <script type="text/javascript" src="jquery-1.5.min.js"></script>
        <script type="text/javascript" src="jquery-ui-1.8.9.custom.min.js"></script>
        <script type="text/javascript" src="jquery.uploadify.js"></script>
    </head>
    <body>
        <script type="text/javascript">
            manualLightboxContent = function ()
            {
                $("#dialogContent").html($('#module_wrapper').html());
                $("#dialogContent").dialog( { 'modal': true } );
            }
        </script>
        <a href="#" onclick="manualLightboxContent();">Open</a>
        <div id="dialogContent" style="display:none;"></div>

        <div id="module_wrapper" style="display:none;">
            <script type="text/javascript">
            $().ready(function() {
                $('#uploadFile').uploadify({
                    'swf'  : 'uploadify.swf',
                    'fileObjName' : "uploadFile"
                });
            });
            </script>
            <input id="uploadFile" type="file" name="uploadFile" />
        </div>
    </body>

</html>

我无法找到原因,但是在Chrome中,我无法打开浏览窗口。就像有些不可见的div漂浮在swf上面一样。

在Opera中,这个错误不那么重要:SELECT FILES文本位于swf下面而不是上面。

如果uploadify在jquery UI对话框之外,则可以正常工作。

有人能解释一下为什么会出现这个问题吗?

编辑: 使用Uploadify 3。


顺便说一句 - 我验证了这个错误(和被接受的答案)也存在于Safari 5.1.7中。 - lhagemann
3个回答

21

最近我遇到了同样的问题,在查看一些代码后,我注意到在第193行有以下内容:

jQuery('#' + swfuploadify.movieName).css({position: 'absolute', 'z-index': 1, 'left' : '0px'});

将z-index简单地更改为9999对我起了作用。

jQuery('#' + swfuploadify.movieName).css({position: 'absolute', 'z-index': 9999, 'left' : '0px'});

当我移除了z-index时,它对我起作用了。但是对这个想法点赞加一 :) - Muhammad Zeeshan

11

如果您不想更改核心代码,只需将以下CSS规则添加到您的页面中。

.swfupload {
    z-index: 100000 !important;
}

1

我已经尝试了所有的解决方案,但都没有成功。

页面中有3个uploadify实例。

如图所示,主页面上有一个对话框或覆盖层div。当我点击“选择文件”时,它不会显示浏览对话框。

http://lh5.ggpht.com/cZ-V3g6IwQ2ke-9NDfv3GYh8ra9YypCs4V60Md_s7W3Rawzg2IcT2WT9HoqX40kaSstF=s170

这是页面的源代码。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 11 February 2007), see www.w3.org" />

  <title></title>
</head>

<body>
  <div id="upload_vi" style=
  "background-color:#e8e8e8; border: 1px solid rgb(0, 0, 0); position:absolute; display:none; width:280px; padding: 4px;"
  class="ui-draggable">
    <div style="padding:5px;">
      <a id="close" onclick="$('#upload_vi').hide()" style="color:#888888; float: right"
      name="close"><img src="images/close_btn.jpg" border="0" /></a>
    </div><br />

    <form id="fiuploader2" name="fiuploader2">
      <input type="hidden" name="edit_item_id2" id="edit_item_id2" value="" /><br />
      <input type="hidden" name="spicname2" id="spicname2" value="" /><input type=
      "hidden" name="sorgname2" id="sorgname2" value="" /> <input type="file2" name=
      "file2" id="file2" style="display: none;" /><object type=
      "application/x-shockwave-flash" data="/js/uplodify/uploadify.swf" width="120"
      height="30" id="file2Uploader" style="visibility: visible;">
        <param name="quality" value="high" />
        <param name="wmode" value="transparent" />
        <param name="allowScriptAccess" value="sameDomain" />
        <param name="flashvars" value=
        "uploadifyID=file2&amp;pagepath=/members/&amp;script=http://localhost/members/multiSrv.php&amp;folder=/files/cityguide/&amp;scriptData=asy_up%3D1%26cityguide%3D1%26video%3D1&amp;width=120&amp;height=30&amp;wmode=transparent&amp;method=POST&amp;queueSizeLimit=1&amp;simUploadLimit=1&amp;fileDesc=Videos (.avi, .flv)&amp;fileExt=*.avi;*.flv&amp;sizeLimit=2000000&amp;fileDataName=Filedata" />
      </object>

      <div id="file2Queue" class="uploadifyQueue"></div><br />
      <a onclick="$('#file2').uploadifyUpload()" style=
      "color: darkblue; font-size: 12px; cursor: pointer; cursor: hand; text-decoration: underline;">
      <b>Upload</b></a><br />

      <div id="hlptxt2">
        Please choose a .avi, .flv file.<br />
        Maximum size 2MB
      </div><br />
      <input type="hidden" name="type2" id="type2" value="videos" />
    </form>
  </div>
</body>
</html>

这个回复似乎不是一个答案。如果这仍然是您未解决的问题,请开一个新的问题。 - bwright

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接