.uploadifySettings没有按预期工作

mar*_*cgg 5 javascript jquery jquery-plugins uploadify

我正在使用uploadify并且更改设置的功能似乎不起作用.

我基于以下示例中的代码:

#(‘#someID’).uploadifySettings(’scriptData’, {‘name’ : some.val()});
Run Code Online (Sandbox Code Playgroud)

所以这就是我正在做的事情:

// INITIALIZATION
$("#"+elementId).uploadify({ 
  // other data
  "scriptData": {
     "token": token
  }
});
Run Code Online (Sandbox Code Playgroud)

稍后我想更新scriptData:

$("#"+elementId).uploadifySettings("scriptData",{"token": "pleasework"});
Run Code Online (Sandbox Code Playgroud)

...但是这不起作用,它仍然在初始化期间使用scriptData设置.

我究竟做错了什么?


更新:我需要这样做,因为我需要处理令牌.这是一个问题:

1- Get a token
2- Init uploadify with this token
3- Upload a file
4- Get another token asynchronously
5- Add the token to the already initialized uploadify (bugged)
6- Go to 3
Run Code Online (Sandbox Code Playgroud)

我尝试在初始化时这样做:

"scriptData": {
   "token": $(".token").val()
}
Run Code Online (Sandbox Code Playgroud)

...并在第4步更新.token

这也不起作用

更新2:如果我这样做:

"scriptData": {
   "token": getAToken()
}
Run Code Online (Sandbox Code Playgroud)

function getAToken(){
  alert("abcd");
  return "sometoken";
}
Run Code Online (Sandbox Code Playgroud)

...我可以看到函数getAToken只被调用一次(只有1个警报)

art*_*ung 1

我查看了源代码,发现uploadifySettings()有一个可选的、未记录的(它没有出现在这里)第三个参数。显然,如果您将其设置true为 ,$("#"+elementId).uploadifySettings("scriptData",{"token": "pleasework"}, true);则会破坏现有设置scriptData,也许会产生一些影响。

但根据消息来源,我无法准确判断设置更改必然会产生什么影响。

    uploadifySettings:function(settingName, settingValue, resetObject) {
        var returnValue = false;
        jQuery(this).each(function() {
            if (settingName == 'scriptData' && settingValue != null) {
                if (resetObject) {
                    var scriptData = settingValue;
                } else {
                    var scriptData = jQuery.extend(settings.scriptData, settingValue);
                }
                var scriptDataString = '';
                for (var name in scriptData) {
                    scriptDataString += '&' + name + '=' + escape(scriptData[name]);
                }
                settingValue = scriptDataString.substr(1);
            }
            returnValue = document.getElementById(jQuery(this).attr('id') + 'Uploader').updateSettings(settingName, settingValue);
        });
Run Code Online (Sandbox Code Playgroud)

该代码来自版本2.1.0

有没有办法在初始化之前决定设置?

另外,我发现了这个现有的问题:Uploadify updateSettings issues