查询Google云端硬盘时YQL没有调用回调函数

时间:2015-02-04 20:27:42

标签: javascript google-docs yql

这是我第一次在项目中使用YQL,所以如果我犯了一个愚蠢的错误,请道歉。

我尝试使用YQL获取可公开查看的Google云端硬盘文件夹的内容列表,然后我可以通过Javascript操作。我非常密切地将我的JavaScript基于雅虎的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>

1 个答案:

答案 0 :(得分:2)

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

1-您忘记在</script>之前添加结束</body>。在那里添加它,你的功能的回调将工作,你会看到“是的!”在第一个<p>

2- in:

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

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