首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在jquery的$( google.load ).load(.load(){})中运行时不工作?

在jquery的$( google.load ).load(.load(){})中运行时不工作?
EN

Stack Overflow用户
提问于 2010-06-21 14:20:42
回答 4查看 4.2K关注 0票数 3

我正在使用Google AJAX feed API来搜索RSS提要。当我在下面的示例1中运行HTML文档头中的javascript时,它可以工作(我知道我没有得到任何结果,但这是改天的问题!),但我需要在加载所有内容时实际运行它。我使用的是jquery,所以我有一个$(Window)函数(.load(){});方法,但当我在其中运行谷歌代码时,它不起作用(示例2)。有没有人看到我做错了什么?

示例1- index.html

代码语言:javascript
运行
复制
<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

代码语言:javascript
运行
复制
$(window).load(function() {
    console.debug("in jquery load function");
});

示例1-Firebug中的输出:

代码语言:javascript
运行
复制
before google load code
after google load code
in jquery load function
google loaded
No Results Found

示例2- code.js

代码语言:javascript
运行
复制
$(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中的输出

代码语言:javascript
运行
复制
in jquery load function
before google load code
window.loadFirebugConsole is not a function
[Break on this error] <html lang="en">

尽管这个错误指的是Firebug,但我不认为这是原因,因为当我在Safari中查看页面时,页面的行为是相同的(屏幕上没有元素)。感谢您的阅读。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-12 13:20:41

只有在JQuery onload回调之后才能使用google onLoad。

代码语言:javascript
运行
复制
function initialize() {
    $(function () {
        // Some other code here
    });
}
google.setOnLoadCallback(initialize);

尝试将其添加到code.js文件中。

票数 3
EN

Stack Overflow用户

发布于 2010-06-23 05:51:54

您必须改用$(document).ready,只有在DOMLoad完成后才会加载脚本。

票数 1
EN

Stack Overflow用户

发布于 2010-06-23 05:47:58

你一定要把jquery放在$ doc.ready上面吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3082482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档