0

ファイルをアップロードするために、fineloader と呼ばれる JavaScript プラグインを使用します。私のコードは以下にあり、ライブデモはここにあります。何らかの理由で、IE7 を使用するとボタンと入力が表示されず、IE8 を使用するとラップトップが表示されませんが、仮想マシンと IE8 および IE9/FF/etc を使用すると表示されます。それを見えるようにするための助けは非常に高く評価されます。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Fine Uploader - Basic</title>
    </head>
    <style>
        #upload-block {width: 280px;}
        button.gray {
            border:1px solid black;
            color: black;
            height: 25px;
        }
    </style>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script src="fineuploader-3.1.js"></script>
    <script>
        $(document).ready(function() {
            var uploader = new qq.FineUploaderBasic({button: document.getElementById('uploader')});
        });
    </script>

    <body>
        <div>
            <label>FILE:</label>
            <div id="upload-block">
                <div id="uploader">
                    <input type="text" readonly id="myFilename">
                    <button class="gray">BROWSE</button>
                </div>
            </div>
        </div>
    </body>
</html>
4

2 に答える 2

1

私はfineuploader3.3を使用していますが、同じ問題だと思います。実際には、それはあなたのコードとは何の関係もありませんが、fineuploaderコードの小さなバグ-ボタンがあり、それは表示されません:)、クリックすることができます(「ファイル」ラベルの下)

ファイルutil.jsと行を見つけます

/**
 * Sets styles for an element.
 * Fixes opacity in IE6-8.
 */
css: function(styles) {
    if (styles.opacity !== null){
        if (typeof element.style.opacity !== 'string' && typeof(element.filters) !== 'undefined'){

に変更します

/**
 * Sets styles for an element.
 * Fixes opacity in IE6-8.
 */
css: function(styles) {
    if ((styles.opacity !== null) && (typeof styles.opacity !== 'undefined')) {
        if (typeof element.style.opacity !== 'string' && typeof(element.filters) !== 'undefined'){

(最初のIFのみが変更であり、残りのコードはそれを簡単に見つけるためにここにあります)

fineuploader-3.1.jsでは、見つけるのが少し難しく、ファイルの最初のどこかにあります。IFコードを慎重に変更してください。

于 2013-03-19T16:56:28.433 に答える
1

アップロード ボタンは少し奇妙です。子としてボタン要素とともにテキスト入力が既にある div を提供するのはなぜですか? ファイン アップローダーは、ファイル入力要素をボタン (この場合は #uploader) の子としても追加することをご存知ですか?

テキスト入力を別の場所に移動することをお勧めしますが、問題が発生しているとは断言できません。ただし、IE8 の実際のコピーは持っていません (ここにある他のポスターのように、互換モードを使用しています)。

代わりに、アップロード ボタンのオプション要素を次のように変更することをお勧めします。

<div id="uploader">
   <div>BROWSE</div>
</div>

そして、おそらく #uploader の兄弟として、テキスト入力を別の場所に置きます。

また、アップローダーの「ボタン」にボタン要素を使用しないでください。IE でのイベント委任の問題により、入力子 (Fine Uploader によって追加された) がクリック イベントを受信できなくなります。

于 2012-12-20T03:49:02.247 に答える