【发布时间】:2009-12-25 23:31:45
【问题描述】:
我正在尝试在我拥有的表单上实现 SWFUpload。但是,它没有识别占位符。我的代码在下面,有人可以帮忙吗?如果有帮助,我正在使用 jQuery。
标题:
<script type="text/javascript" src="{{ MEDIA_URL }}/js/SWFUpload-2.5.0/swfupload/swfupload.js"></script>
<script type="text/javascript" src="{{ MEDIA_URL }}/js/SWFUpload-2.5.0/swfupload/swfupload.cookies.js"></script>
<script type="text/javascript" src="{{ MEDIA_URL }}/js/foo.js"></script>
<script type="text/javascript">
$(swfupload("{% url swfupload %}","{{ MEDIA_URL }}/js/SWFUpload-2.5.0/swfupload/swfupload.swf"));
</script>
主体:
<div id="upload_btn"></div>
Javascript (foo.js):
swfupload = function(upload_url, flash_url) {
var swfupload_real = new SWFUpload({
debug: false,
upload_url: upload_url,
flash_url: flash_url,
button_placeholder_id: "upload_btn",
button_width: "40",
button_height: "16",
button_cursor: SWFUpload.CURSOR.HAND,
button_text: "Click",
file_size_limit: "20 MB",
file_dialog_complete_handler: function() { this.startUpload(); },
upload_complete_handler: function() { this.startUpload(); },
});
};
编辑:我尝试查看 SWFUpload.js 的源代码,发现在它试图查找元素时,它会这样做:
targetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder;
我试着看看发生了什么,令人难以置信的是,document.GetElementByID 返回 null 而 $('#'+this.settings.button_placeholder_id) 返回对象!我宁愿不修改库以使用另一个依赖项。有谁知道为什么会这样?
【问题讨论】:
-
我应该补充一点,我正在使用最新版本的 SWFUpload(版本 2.5.0 Beta 1 Core)
-
如果我将它直接包含在脚本标签中而不是作为外部文件,我可以让它工作。也许它与脚本运行时有关?我将它分配给 window.onload 但无济于事。