如何让 Dropbox 选择器作为 SharePoint 2010 Visual Webpart 工作

How to get Dropbox chooser working as a Sharepoint 2010 Visual Webpart

本文关键字:2010 SharePoint Visual Webpart 工作 Dropbox 选择器      更新时间:2023-09-26

我在SP2010可视化Webpart中有下面的javascript代码,该代码适用于Google Chrome,但不适用于IE9。这是一个令人担忧的问题,因为Dropbox Chooser网站表示addEventListener不适用于IE8或更低版本。

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DropboxControlUserControl.ascx.cs" Inherits="DropBoxWebPart.DropboxControl.DropboxControlUserControl" %>
<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="xxxxxxxxxxxxxxx"></script>
<input type="dropbox-chooser" name="selected-file" id="db-chooser"/>
<script type="text/javascript">
   document.getElementById("db-chooser").addEventListener("DbxChooserSuccess",
     function(e) {
         window.open(e.files[0].link)
     }, false);
</script>

我尝试使用Dropbox.chooser(options(函数来克服这个问题,但我不确定从哪里放置代码或调用函数。我是否需要从代码隐藏中调用它,因为我尝试将其放入这样的脚本中,并且还尝试使用 document.getElementById("db-chooser"(.on 或 .attachevent 并且无法让它工作。

<script type="text/javascript">
Dropbox.chooser(options);
options = {
        // Required. Called when a user selects an item in the Chooser.
        success: function(files) {
            alert("Here's the file link:" + files[0].link)
        },
        // Optional. Called when the user closes the dialog without selecting a file
        // and does not include any parameters.
        cancel: function() {
        },
        linkType: "preview" or "direct",     
        extensions: ['.pdf', '.doc', '.docx'],            
    };
</script>
我很

惊讶你的第一个示例在IE9中不起作用。对我来说看起来很好。我以后自己试试。(编辑:我确实有机会尝试这个,尽管它是在IE10模式下的IE9。代码对我来说效果很好。

对于第二个示例,在将options作为参数传递之前,您不会定义它。(因此,您传递了一个未定义的变量,然后稍后对其进行定义。如果你只是在实际定义该变量之后放置Dropbox.choose(options);行,我希望它能工作。

此外,该linkType无效。选择一个,"预览"或"直接"。首先,请尝试以下代码:

var options = {
    success: function (files) { alert(files[0].link); }
}
Dropbox.choose(options);

或者,如果您愿意:

Dropbox.choose({
    success: function (files) { alert(files[0].link); }
});

您需要运行该代码以响应用户操作(例如单击链接(,这样您就不会被弹出窗口阻止程序阻止。所以像这样:

document.getElementById('mybutton').onclick = function () {
    Dropbox.choose({
        success: function (files) { alert(files[0].link); }
    });
}