我正在使用Google AJAX Feed API搜索RSS Feed。当我在下面的例子1中运行我的HTML文档头部中的javascript时,它可以工作(我知道我没有得到任何结果,但这是另一天的问题!),但我需要在加载所有内容时实际运行它。我正在使用jquery,所以我有$(window).load(function(){});方法,但是当我在那里运行Google代码时它不起作用(例2)。谁能看到我做错了什么?
示例1 - index.html
<head>
<script type="text/javascript">
console.debug("before google load code");
google.load("feeds", "1");
console.debug("after google load code");
google.setOnLoadCallback(loaded);
function loaded() {
console.debug("google loaded");
google.feeds.findFeeds("news", feedSearchDone);
}
function feedSearchDone(result) {
if (result.error || result.entries.length <= 0) {
console.debug("No Results Found");
return;
}
else {
console.debug(result.entries[0].url);
} }
</script>
</head>
示例1 - code.js
$(window).load(function() {
console.debug("in jquery load function");
});
示例1 - Firebug中的输出:
before google load code
after google load code
in jquery load function
google loaded
No Results Found
示例2 - code.js
$(window).load(function() {
console.debug("in jquery load function");
console.debug("before google load code");
google.load("feeds", "1");
console.debug("after google load code");
google.setOnLoadCallback(loaded);
function loaded() {
console.debug("google loaded");
google.feeds.findFeeds("news", feedSearchDone);
}
function feedSearchDone(result) {
if (result.error || result.entries.length <= 0) {
console.debug("No Results Found");
return;
}
else {
console.debug(result.entries[0].url);
} }
});
示例2 - Firebug中的输出
in jquery load function
before google load code
window.loadFirebugConsole is not a function
[Break on this error] <html lang="en">
即使错误引用Firebug,我也不认为这是原因,因为当我在Safari中查看时,页面的行为相同(屏幕上没有元素)。谢谢你的阅读。
答案 0 :(得分:3)
JQuery onload只能在google onLoad回调之后使用。
function initialize() {
$(function () {
// Some other code here
});
}
google.setOnLoadCallback(initialize);
尝试将其添加到code.js文件中。
答案 1 :(得分:1)
您必须使用$(document).ready
,而脚本只会在DOWNLoad完成后加载。
答案 2 :(得分:0)
你肯定是在你的$ doc.ready上面加上jquery吗?
答案 3 :(得分:0)
google Libraries API代替使用google.load:
首选方法是通过标准标记加载库(如<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
中所示,这将导致最快的加载。
关于这一点的好处是你不需要设置google.setOnLoadCallback,并且无论如何都可以在页面加载时使用这些库。