这是我第一次在项目中使用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>
答案 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]
。