【问题标题】:GWT + SmartGWT + Javascript: external script integrationGWT + SmartGWT + Javascript:外部脚本集成
【发布时间】:2014-06-12 18:56:49
【问题描述】:

我正在使用 GWT 和 SMartGWT 构建一个 Web 应用程序,我需要为照片库集成一个外部脚本:http://slideshow.triptracker.net/。 我目前的尝试是:

ScriptInjector.fromUrl("http://slideshow.triptracker.net/slide.js").setCallback(
              new Callback<Void, Exception>() {
                     public void onFailure(Exception reason) {
                       Window.alert("Script load failed.");
                     }
                    public void onSuccess(Void result) {
                      Window.alert("Script load success.");
                     }
                  }).inject();

之后,我调用了这个方法:

代码:

native static void example(String p) /*-{

     $wnd.viewer = new $wnd.PhotoViewer();
             $wnd.viewer.add(p)
     $wnd.viewer.show(0);

}-*/;

这不会给出任何错误,但照片库出现在 BEHIND 我的入口点布局中,因此无法使用它。

所以,我正在尝试找到一种解决方法,并且我想参考 Javasript 的主要布局,以在其上运行脚本。这可能吗?我试过了

 foo.getElement().getId();

但它返回给我类似

 isc_VLayout_0_wrapper

但是,Javascript 不喜欢它。

然后我尝试了

  foo.getDOM.getId();

  isc_1

但结果没有改变。

有人可以帮我解决这个问题吗? 谢谢。

【问题讨论】:

  • 后面是什么意思?它在你的 DOM 中,但是 z-index 错误?在这种情况下,关于脚本注入的一切都可以正常工作。我认为您需要显示一些布局代码。
  • 我的意思是它在背景中,放置在页面其余部分的“层后面”,使其不可见。

标签: javascript gwt smartgwt


【解决方案1】:

我认为这里有两件事可能是错误的:

  1. 您有一个onSuccess() 回调,您可以从内部调用jsni

    //1
    ScriptInjector.fromUrl("http://slideshow.triptracker.net/slide.js").setCallback(
        new Callback<Void, Exception>() {
            public void onFailure(Exception reason) {
                //3a
            }
            public void onSuccess(Void result) {
                example("works"); 
                //3b                 
            }
        }).inject();
    //2
    example("not loaded");
    
  2. 您也可以尝试在拨打.inject()之前先拨打.setWindow(ScriptInjector.TOP_WINDOW)

【讨论】:

  • 1) 在脚本被注入后,我正在单击按钮时调用本机方法。 2) 试过了,还是不行(很遗憾没变)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-06
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
相关资源
最近更新 更多