$(document).ready(function() {
alert("aaaaaaaaaaa");
SWFUploadInit(); //初始化Flash上传组件
});
window.onload=function(){
alert("bbbbbbbb");
}
function SWFUploadInit(){
var kbid = $("#hidKbId").val();
var settings = {
flash_url: "/js/swfupload/swfupload.swf",
upload_url: "KB_EditNew.aspx?act=swfupload&attachcat=KB&kbid="+kbid,
post_params: { "PHPSESSID": "" },
file_size_limit: "1024 MB",
file_types: "*.*",
file_types_description: "All Files",
file_upload_limit: 100,
file_queue_limit: 0,
custom_settings: {
progressTarget: "fsUploadProgress"
//cancelButtonId: "btnCancel"
},
debug: false,
// Button settings
button_image_url: "/js/swfupload/btn_attach.png",
button_width: "85",
button_height: "28",
button_placeholder_id: "spanButtonPlaceHolder",
//button_text: '<a class=""></a>',
//button_text_style: ".theFont { cursor: pointer; }",
button_text_left_padding: 12,
button_text_top_padding: 3,
// The event handler functions are defined in handlers.js
file_queued_handler: fileQueued,
file_queue_error_handler: fileQueueError,
file_dialog_complete_handler: fileDialogComplete,
upload_start_handler: uploadStart,
upload_progress_handler: uploadProgress,
upload_error_handler: uploadError,
upload_success_handler: uploadSuccess20,
queue_complete_handler: queueComplete // Queue plugin event
};
swfu = new SWFUpload(settings);
}
第一次打开本页面,弹出"aaaaaaaaa",但没有弹出"bbbbbbbbbb", 本页面上点swfupload上传附件OK,然后再点上传附件,并为弹出"aaaaaaaaaa",也没有去取$("#hidKbId").val()的值,但上传也OK。
我想要每次点击上传附件的时候取$("#hidKbId").val(),请问有解决方法吗?
ajax
swfupload
------解决方案--------------------
弹出aaaaaaaaa说明已经执行过SWFUploadInit(); 也就是执行过var kbid = $("#hidKbId").val()这句代码获取值了
window.onload不执行应该是出现了其他js错误导致没有执行到windw.onload=语句上附加事件,确认你就这些js代码?
------解决方案--------------------
首先你吧
SWFUploadInit(); 注释掉
看看 onload执行不
另外我以前貌似碰见过 在加载页面时 加载的资源又引用了外部资源 可能会不触发onload事件
你想要每次点击上传附件的时候取$("#hidKbId").val(),
可以看api文档啊
配置中
upload_start_handler: uploadStart, //这个是上传前触发的事件
那么假定你的uploadStart方法这样写
function uploadStart(){
swfu.addPostParam ( 'kbid', $("#hidKbId").val()); //在上传前 添加一个提交参数
}