【问题标题】:callback in dojo after loading google oauth client加载 google oauth 客户端后在 dojo 中回调
【发布时间】:2014-03-10 09:13:18
【问题描述】:

为了加载 google oauth 客户端库,我们必须使用这个脚本标签

<script src="https://apis.google.com/js/client.js?onload=load"></script>

client.js 加载后会调用 load 方法的地方。

我在我的应用程序中使用道场

如何使用 dojo 加载它?

我尝试过使用dojo/request/script,但是回调方法被dojo采用,无法修改

任何帮助我如何做到这一点,

谢谢

【问题讨论】:

    标签: dojo google-oauth-java-client


    【解决方案1】:

    回调被发送到延迟的then参数::

    require(["dojo/request/script", "dojo/dom", "dojo/dom-construct", "dojo/json", "dojo/on", "dojo/domReady!"],
    
    function (script, dom, domConst, JSON, on) {
        on(dom.byId("startButton"), "click", function () {
            domConst.place("<p>Requesting...</p>", "ret");
            script.get("http://ajax.googleapis.com/ajax/services/search/web", {
                jsonp: "callback",
                query: {
                    "v": "1.0",
                    "q": "internet kittens"
                }
            }).then(function (data) {
                //Call you function here, or deal with data
                domConst.place("<p>response data: <code>" + JSON.stringify(data) + "</code></p>", "ret");
            });
        });
    });
    

    小提琴::http://jsfiddle.net/D49GP/

    更新 您将无法为此使用普通的 dojo 语法。问题是当dojo 为then 创建回调时,它会创建object.method 格式的回调函数。这不起作用,因为谷歌正在使用 window[nameoffunction] 进行回调。 因此,您可以手动为脚本 IO 添加参数。在下面使用:

      script.get("https://apis.google.com/js/client.js", {
                //jsonp: "onload",
                query: {
                    onload:<callbackfunction>
    
                }
            })
    

    【讨论】:

    • 但是当我请求作为 google oauth 客户端库的 js 文件时,我没有得到任何东西......在调试时......
    • 好的,dojo 创建回调的方式以及 google 尝试调用它们的方式存在问题。我已经更新了我上面的回复..
    猜你喜欢
    • 2017-01-02
    • 2014-12-08
    • 1970-01-01
    • 2021-07-16
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 2017-09-06
    相关资源
    最近更新 更多