我正在尝试使用YUI上传器,但是当我点击浏览按钮时,我无法打开文件对话框窗口。我正在关注(或多或少)example on 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。
答案 0 :(得分:2)
我有同样的问题。
2.版本的uploader.swf
存在错误如果您遇到与我相同的问题,那么切换到2.7版本的uploader.swf会使您的事件按预期启动。
答案 1 :(得分:1)
我认为这可能与YUI上传者页面中的这条说明有关:
由于即将推出的Flash Player 10中的安全性更改,用于调用“浏览”对话框的UI必须包含在Flash播放器中。因此,这个新版本的上传器与后一版本编写的代码并不兼容(但它与Flash Player 9兼容)。如果不仔细阅读文档并查看新示例,请不要升级到此版本。
这意味着您不必直接通过<input>
按钮调用上传功能,而是必须创建另一个<div>
,其中包含由YUI上传器创建的透明Flash叠加层。
See the example from the YUI site:
<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>
答案 2 :(得分:0)
正常情况下,当发生关注swf文件时,原因是此文件打开对话框而不是JAVASCRIPT,所以你必须下载文件并放入你的服务器,你不能直接在雅虎网站访问。
你也可以使用这种依赖
最好内厄姆
PS。我第一次使用yui上传有同样的问题。