添加许多dropbox选择器与不同的扩展选项不工作

Adding many dropbox choosers with different extensions option does not work

本文关键字:扩展 选项 工作 添加 dropbox 选择器 许多      更新时间:2023-09-26

我想把不同的选择器与不同的扩展选项的一个页面。所以我在我的位置的不同位置插入了一个<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);
}
}
}
}

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

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

丹尼斯

我相信在选择器实际打开之前,选择器不会查看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));
}