Я пытаюсь реализовать загрузку SWFU в форме, которую я имею. Тем не менее, это не определение заполнителя. Мой код ниже, кто-то может помочь? Я использую 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>
Body:
<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
возвращает ноль, а $('#'+this.settings.button_placeholder_id)
возвращает объект! Я бы предпочел не изменять библиотеку, чтобы использовать другую зависимость. Кто-нибудь знает, почему это может быть?