2

YUI アップローダーを使用しようとしていますが、参照ボタンをクリックしてもファイル ダイアログ ウィンドウを開くことができません。私は (多かれ少なかれ) Yahoos demo の例に従っています。

ここに私のHTMLコードがあります:

<div id="fileProgress">
  <input id="fileName" type="text" size="40" />
  <input id="uploaderUI" name="uploaderUI" class="submitButton" type="button" value="Browse" />
  <input id="uploadFile" name="uploadFile" class="submitButton" type="button" value="Upload" />
    <div id="progressBar"></div>
</div> 

そして、ここに私のjavasctipsコードがあります:

jQuery(document).ready(function() {
    initYUIUpload();
});

  function initYUIUpload()
  {
    YAHOO.widget.Uploader.SWFURL = "wp-includes/js/yui/assets/uploader.swf";  
    var uploader = new YAHOO.widget.Uploader("uploaderUI");

    uploader.addListener('contentReady', handleContentReady);
    uploader.addListener('fileSelect',onFileSelect)
    uploader.addListener('uploadStart',onUploadStart);
    uploader.addListener('uploadProgress',onUploadProgress);
    uploader.addListener('uploadCancel',onUploadCancel);
    uploader.addListener('uploadComplete',onUploadComplete);
    uploader.addListener('uploadCompleteData',onUploadResponse);
    uploader.addListener('uploadError', onUploadError);

    jQuery('#uploadFile').click(function(){ upload() });            
  }


更新
YUI アップローダーの使用を「あきらめ」、現在は Uploadify を使用しています。

4

3 に答える 3

2

私はこれとまったく同じ問題を抱えていました。

2.8 バージョンの uploader.swf にバグがあります

私と同じ問題が発生した場合は、uploader.swf の 2.7 バージョンに切り替えると、イベントが期待どおりに発生します。

于 2010-01-28T01:37:55.963 に答える
1

YUI Uploader ページの次のメモと関係があるのではないかと思います。

今後の Flash Player 10 でのセキュリティの変更により、[参照] ダイアログを呼び出すための UI を Flash Player 内に含める必要があります。そのため、この新しいバージョンのアップローダーは、以前のバージョンで動作するように記述されたコードと後方互換性がありません (ただし、Flash Player 9 とは互換性があります)。ドキュメントを注意深く読み、新しい例を確認することなく、このバージョンにアップグレードしないでください。

<input>つまり、アップロード関数をボタンから直接呼び出すのではなく、<div>YUI アップローダによって作成された透明な Flash オーバーレイを含む別の関数を作成する必要があります。

YUI サイトの例を参照してください

 <div id="uiElements" style="display:inline;">
        <div id="uploaderContainer">
            <div id="uploaderOverlay" style="position:absolute; z-index:2"></div>
            <div id="selectFilesLink" style="z-index:1"><a id="selectLink" href="#">Select Files</a></div>
        </div>
        <div id="uploadFilesLink"><a id="uploadLink" onClick="upload(); return false;" href="#">Upload Files</a></div>
</div>

<script type="text/javascript">

 YAHOO.util.Event.onDOMReady(function () { 
    var uiLayer = YAHOO.util.Dom.getRegion('selectLink');
    var overlay = YAHOO.util.Dom.get('uploaderOverlay');
    YAHOO.util.Dom.setStyle(overlay, 'width', uiLayer.right-uiLayer.left + "px");
    YAHOO.util.Dom.setStyle(overlay, 'height', uiLayer.bottom-uiLayer.top + "px");
    });

</script>
于 2009-12-07T22:35:08.483 に答える
0

問題がswfファイルに関するものである場合、通常は問題ありません。原因は、JAVASCRIPTではなくダイアログを開くこのファイルであるため、ファイルをダウンロードして、yahooサイトで直接アクセスできないサーバーに配置する必要があります。

また、この依存関係を使用できます

最高のナホム

PS。yui アップロードを初めて使用したときも同じ問題がありました。

于 2010-09-22T00:22:26.773 に答える