链接未显示在Dropbox选择器应用中

时间:2014-01-31 01:54:42

标签: javascript html dropbox dropbox-api

我正在努力尝试在Dropbox选择器插件应用中弹出一个链接。我正在使用javascript方法并插入到html页面中。 Dropbox选择器按钮显示,我可以从Dropbox弹出窗口中选择一个文件,但结果只是一个绿色的复选标记和没有像演示中的链接(我已经尝试了直接和预览方法)。几个小时我一直在努力。任何人都看错了,或者想要分享一个好的代码snipeet?

这是我的代码:

<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="XXXXXX"></script> 
<!-- Replace data-app-key with yours --> <script type="text/javascript">
// add an event listener to a Chooser button
document.getElementById("db-chooser").addEventListener("DbxChooserSuccess",
    function(e) {
        alert("Here's the chosen file: " + e.files[0].link)
        window.location.href = 'e.files[0].link';
    }, false);
</script> 
<input data-link-type="direct" id="db-chooser" name="selected-file" type="dropbox-chooser" />
<div id="link-div" style="display: none">Link:</div>
<script type="text/javascript">
document.getElementById("db-chooser").addEventListener("DbxChooserSuccess",
function(e) {
  var link = document.getElementById("link");
  link.textContent = link.href = e.files[0].link;
  document.getElementById("link-div").style.display = "block";
}, false);
</script>

1 个答案:

答案 0 :(得分:2)

我在上面的代码中看到两个问题。

  1. 第一个脚本在它实际出现在页面之前引用db-chooser,因此可能根本不起作用。
  2. 第二个脚本会查找名为link的元素,但我认为您的意思是link-div
  3. 最后,您可能希望更新到最新版本的dropins.js,因为它是最新版本。 :-) input标记版本已消失,您可以使用createChooseButton。以下是使用最新版本的完整工作示例:

    <!doctype html>
    <html>
    <head>
        <script src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="XXXXXX"></script>
    </head>
    <body>
        <div id="container"></div>
        <a id="link"></a>
    
        <script>
            var button = Dropbox.createChooseButton({
                success: function(files) {
                    var linkTag = document.getElementById('link');
                    linkTag.href = files[0].link;
                    linkTag.textContent = files[0].link;
                },
                linkType: 'direct'
            });
            document.getElementById('container').appendChild(button);
        </script>
    </body>
    </html>