加载谷歌oauth客户端后在dojo中回调

时间:2014-02-12 07:23:12

标签: dojo google-oauth-java-client

要加载google oauth客户端lib,我们必须使用此脚本标记

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

在加载client.js之后将调用load方法。

我在我的应用程序中使用dojo

如何使用dojo加载它?

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

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

由于

1 个答案:

答案 0 :(得分:2)

回调被发送到延迟的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格式创建回调函数。这不起作用,因为谷歌正在使用窗口[nameoffunction]进行回叫。 因此,您可以手动为脚本IO添加参数。使用以下:

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

            }
        })