YQL 在查询 Google Drive 时不调用回调函数

YQL not calling callback function when querying Google Drive

这是我第一次在项目中使用 YQL,如果我犯了愚蠢的错误,请见谅。

我正在尝试使用 YQL 获取可公开查看的 Google Drive 文件夹的内容列表,然后我可以通过 Javascript 对其进行操作。我的 JavaScript 非常接近 Yahoo 的 example code,但我的代码无法正常工作。 (我已经得到了实际的例子。)似乎 YQL 甚至没有触发回调函数,但我什至不确定如何调试正在发生的事情。

Here's my query 在 YQL 控制台上,似乎可以正常工作。

这是我的测试页的 HTML,没有任何反应:

<!DOCTYPE html>
<html>
<head>
<title>
    Test
</title>
<script type="text/javascript">
    //Parses returned response
    function specialhelper (yqlQuery) {
        //Attenpt to see if function is even being called
        document.getElementById("yes").innerHTML = "Yes!"

        var items = yqlQuery.query.results.a;
        var output = "";
        var no_items=items.length;
        for(var i=0;i<no_items;i++){
            var iHref = contents[i].href;
            var iContent = contents[i].content;
            output += "<p><b>" + iContent + "</b> " + iHref + "</p>"
        }
        // Place output in div tag  
        document.getElementById('results').innerHTML = output; 
    }
</script>
</head>

<body>

<p id="yes">No</p>

<!-- Div tag for results -->  
<div id='results'></div>  

<!-- The YQL statment will be assigned to src. -->
<script src="https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22https%3A%2F%2Fgoogledrive.com%2Fhost%2F0B-3jydFVOQDnLUM5QmM3c0Vfa3M%2F%22%20and%20xpath%3D'%2F%2Fdiv%5B%40class%3D%22folder-cell%22%5D%2Fa'&format=json&callback=specialhelper">

</body>

您的代码中有 2 个小错误:

1- 您忘记在 </body> 之前添加结尾 </script>。将它添加到您的函数的回调将起作用,您将在第一个 <p>.

中看到 "Yes!"

2- 在:

for(var i=0;i<no_items;i++){ var iHref = contents[i].href; var iContent = contents[i].content; ... }

您正在使用一个名为 contents 的变量。此类变量之前未在您的代码中声明或使用过。您应该将 contents[i] 替换为 items[i].