-1

我知道我不是第一个收到此错误的人,而且 Stack Overflow 上还有很多其他关于此错误的帖子。但是,我找不到解决方案,因此写了这个问题。

我比较新鲜,最近开始学习 JSON、jQuery、JavaScript 和 HTML5。所以,我想动手实践一下下面这个非常基本的例子。

<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
<script>
debugger;
</script>
<title>Doc Title</title>
</head>
<body>
<p id="rssFeed">News Loadin...</p>
<script>
debugger;
var yQuery = 'http://news.google.com/news?geo=02138&output=rss';
var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent("select * from xml where url='" + yQuery + "'") + '&format=json&callback=?';
debugger;
(function(){
    debugger;
    $.getJSON(yql)
    debugger;
     .done(function(data){
        debugger;
        $.each(data.query.results.item, function(i,item){
            alert(item.link);
        });
     });
})();
</script>
</body>
</html>

这个 HTML 文件在我的本地机器上,我正在 Chrome 浏览器中对其进行测试。我在浏览器中看到的唯一内容是“新闻加载...”文本。我没有收到任何警报(来自警报(item.link);)。

我尝试在 Chrome (F12) 中调试此代码,并在代码中放置了一些“调试器”。在调试窗口中,我Uncaught SyntaxError: Unexpected token .在该行看到错误.done(function(data)

对于 URL,我已经尝试了 Stack Over flow 上其他答案中建议的两个选项,以解决相同的错误。

  • 回调=?
  • 回调=cbfunc

yql 将具有以下值:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D'http%3A%2F%2Fnews.google.com%2Fnews%3Fgeo%3D02138%26output%3Drss'&format=json&callback=cbfunc

如果我把yqlwith'cbfunc'放在浏览器 URL 中,我会得到 JSON,如果我把'?'我得到错误。但是,当我加载 HTML 并且两者都出现相同的错误时Uncaught SyntaxError: Unexpected token,它们都不起作用。

我注意到的另一个问题是,每当我在 Chrome 中打开这个文件时,调试器只会在debugger我在<script>under<head>元素中的第一个位置停止。即使我在 Chrome 开发工具中放置断点(通过选择行号),它也不会停止在“发生这种情况”debugger中的任何语句。<body>.它只是不会停止在<body>元素中。

我对这些东西很陌生,所以请原谅我在这里犯的任何愚蠢的错误。

问候, 鲁米特

4

2 回答 2

1

在您的代码中

$.getJSON(yql)
    debugger; // <<== remove this line
        .done(function(data){

.done()被调用$.getJSON(yql),你debugger正在破坏语法

于 2013-10-02T07:52:03.720 回答
0

删除“调试器;” 在 .done(..) 之前的行上。对从 $.getJSON(yql) 返回的对象调用 .done(..)...

于 2013-10-02T07:52:25.307 回答