首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT Javascript注入和JSNI

GWT Javascript注入和JSNI
EN

Stack Overflow用户
提问于 2013-01-22 03:51:18
回答 2查看 2.8K关注 0票数 3

如何在JSNI代码中使用Javascript库(从CDN下载)?

例如,我想要从这个JSNI方法中调用javascript条纹方法:

代码语言:javascript
复制
    private native void contactStripe(String creditCard, String cvc, String expiryMonth, String expiryYear) /*-{
        $wnd.Stripe.setPublishableKey('my_stripe_publishable_key');
        $wnd.Stripe.createToken({
            number: creditCard,
            cvc: cvc,
            exp_month: expiryMonth,
            exp_year: expiryYear
        }, callBack);
    }-*/;

..。但是,还没有定义Stripe javascript方法。

(有关Stripe.createToken方法https://stripe.com/docs/tutorials/forms#create-a-single-use-token的更多信息)

使用CDN url注入条纹javascript文件:

代码语言:javascript
复制
ScriptInjector.fromUrl("https://js.stripe.com/v1/").setCallback(
    new Callback<Void, Exception>() {
    public void onFailure(Exception reason) {
    }
    public void onSuccess(Void result) {
        contactStripe("0000111122223333", "456", "04", "2014");
    }
}).inject();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-22 18:56:44

如果希望JS脚本以其定义的全局变量可通过$wnd访问的方式注入,则必须使用setWindow(ScriptInjector.TOP_WINDOW).

票数 9
EN

Stack Overflow用户

发布于 2013-01-22 04:05:42

尝试将您的代码更改为:

代码语言:javascript
复制
private native void contactStripe(String creditCard, String cvc, String expiryMonth, String expiryYear) /*-{

    console.log($wnd.Stripe);             // Should log 'Object'
    console.log($wnd.Stripe.createToken); // should log function
    var obj = {
        number: creditCard,
        cvc: cvc,
        exp_month: expiryMonth,
        exp_year: expiryYear
    };
    consloe.log(obj);                     // Should be 'Object'
    $wnd.Stripe.createToken(obj, callBack);
}-*/; 

如果您使用chrome调试工具,您可以检查所有这些对象。

更新你不提供回调。这是你的问题吗?

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

https://stackoverflow.com/questions/14446136

复制
相关文章

相似问题

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