Jquery 在SWFUpload中找不到占位符元素

Jquery 在SWFUpload中找不到占位符元素,jquery,django,swfupload,Jquery,Django,Swfupload,我正在尝试在我拥有的表单上实现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。但是,它没有标识占位符。我的代码在下面,有人能帮忙吗?如果有帮助的话,我正在使用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>
编辑:我试着查看SWFUpload.js的源代码,发现在它试图查找元素的时候,它会这样做:

targetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder;

我试着看看发生了什么,难以置信的是,
document.GetElementByID
返回空值,而
$('#''.'加上this.settings.button_placeholder_id)
返回对象!我不想修改库以使用另一个依赖项。有人知道为什么会这样吗?

我的javascript被破坏了。解决方法如下:

<script type="text/javascript">
    upload_url = "{% url edit-story-swfupload %}";
    flash_url = "{{ MEDIA_URL }}/js/SWFUpload-2.5.0/swfupload/swfupload.swf";
    window.onload = swfupload_init;
</script>


swfupload_init = function() {
    var swfupload = 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(); },
    });
}

upload_url=“{%url编辑故事swfupload%}”;
flash_url=“{MEDIA_url}}/js/SWFUpload-2.5.0/SWFUpload/SWFUpload.swf”;
window.onload=swfupload_init;
swfupload_init=函数(){
var swfupload=新的swfupload({
调试:错误,
上传网址:上传网址,
flash_url:flash_url,
按钮\u占位符\u id:“上传\u btn”,
按钮宽度:“40”,
按钮高度:“16”,
按钮光标:SWFUpload.cursor.HAND,
按钮文本:“点击”,
文件大小限制:“20MB”,
文件对话框完成处理程序:函数(){this.startupboad();},
上载完整处理程序:函数(){this.startupboad();},
});
}

我应该补充一点,我使用的是最新版本的SWFUpload(版本2.5.0 Beta 1 Core),如果我将其直接包含在脚本标记中,而不是作为外部文件,我可以让它工作。也许这与脚本运行的时间有关?我正在将其分配给window.onload,但无效。swfupload_init在哪里加载?在页面上还是从外部脚本?我认为,既然upload\u url和flash\u url是全局变量,那就不重要了。但是,依赖外部脚本中页面中定义的全局变量是一种不好的做法,因此最好将其包含在页面中以便于可读。我想现在我长大了,更聪明了,我要做的是定义一个函数,该函数在外部脚本中获取URL,并在页面调用中定义一个包装器。包装器将被分配给事件处理程序。
targetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder;
<script type="text/javascript">
    upload_url = "{% url edit-story-swfupload %}";
    flash_url = "{{ MEDIA_URL }}/js/SWFUpload-2.5.0/swfupload/swfupload.swf";
    window.onload = swfupload_init;
</script>


swfupload_init = function() {
    var swfupload = 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(); },
    });
}