添加许多具有不同扩展选项的Dropbox选择器不起作用

时间:2014-06-23 11:39:46

标签: javascript dropbox

我想将不同的选择器放在一个具有不同扩展选项的页面上。所以我在我网站的不同位置插入了<div class="dropbox-chooser"></div>。然后我写了下面这个函数(用于测试):

window.onload = function() {
if (document.getElementsByClassName("dropbox-chooser")) {

for(var i = 0; i < document.getElementsByClassName("dropbox-chooser").length; i++){
if (i === 0) {
options.extensions = ['.zip','.exe','.rar','.7zip','.php','.html','.css','.js'];['.3gp','.3gpp','.3gpp2','.avi','.mov','.mp4','.wmv','.m4v','.mpg','.mkv','.mpeg','.vob','.flv','.mts','.m2t','.ts','.dv'];
button = Dropbox.createChooseButton(options);alert(options.toSource());
document.getElementsByClassName("dropbox-chooser")[i].appendChild(button);
}
if (i === 2) {
options.extensions = ['.3gp','.3gpp','.3gpp2','.avi','.mov','.mp4','.wmv','.m4v','.mpg','.mkv','.mpeg','.vob','.flv','.mts','.m2t','.ts','.dv'];
button = Dropbox.createChooseButton(options);alert(options.toSource());
document.getElementsByClassName("dropbox-chooser")[i].appendChild(button);
}
}
}
}

并且两个选择器呈现在正确的位置,但是当我单击其中一个选择器按钮时,extensions选项始终是最后一个(.3gp ...),尽管options.toSource()函数显示正确的对象每个按钮的内容。

你能帮帮我吗? 非常感谢!

丹尼斯

1 个答案:

答案 0 :(得分:0)

我相信Chooser在实际打开Chooser之前不会查看options对象。

每次都应该传入一个不同的对象。

修改

以下是我的建议:

var choosers = document.getElementsByClassName('dropbox-chooser');
for (var i = 0; i < choosers.length; i++) {
    var options = {
        // ...
    };
    if (i === 0) {
        options.extensions = ['.zip', '.exe' /* ... */];
    } elif (i === 2) {
        options.extensions = ['.3gp', '.3gpp' /* ... */];
    }
    choosers[i].appendChild(Dropbox.createChooseButton(options));
}