【问题标题】:Java GWT Image.onErrorHandler is not triggeringJava GWT Image.onErrorHandler 未触发
【发布时间】:2022-06-23 18:11:37
【问题描述】:

我在 GWT 上遇到图像加载问题。

在服务器端:

在客户端:

  • 我通过将新 url 放入 GWT Image 对象来调用此 servlet。

但是,即使我使用的是 localhost,有时图像也不会显示。而且它永远不会触发“onError”,总是“onLoad”。

我应该如何调试它?请帮忙。

tbCaptcha = new TextBox();

imgCaptcha = new Image();
imgCaptcha.addErrorHandler(new ErrorHandler() {
    public void onError(ErrorEvent event) {
        d.ce("onCaptcha", "onError", System.currentTimeMillis());
        onCaptcha.execute();
    }
});
imgCaptcha.addLoadHandler(new LoadHandler() {
    public void onLoad(LoadEvent event) {
        d.cr("onCaptcha", "onLoad", System.currentTimeMillis());
    }
});

var login = TGS_LibScaleServletUtils.login();
var newUrl = TGC_CaptchaUtils.newUrl(login.domain, login.port, login.spi);
imgCaptcha.setUrl(newUrl);

是的,我正在创建一个带有随机参数的新 URL,并使用 Image.prefetch,如下所示:

public static String newUrl(CharSequence domain, Integer port, CharSequence spi) {
    var newUrlCaptcha = TGS_UrlBuilderUtils.https()
            .domain(domain).port(port).directory(spi)
            .fileOrServlet(TGS_SURLUtils.LOC_NAME)
            .parameter(TGS_SURLUtils.PARAM_NAME, TGS_CaptchaUtils.SERVLET_REFRESH())
            .parameterRandom("r", 10).toString();
    Image.prefetch(newUrlCaptcha);
    return newUrlCaptcha;
}

客户端控制台:

查看github中的api代码github

【问题讨论】:

  • 能否附上控制台截图。有错误吗?
  • 在 servlet 端,没有错误...我添加了客户端控制台日志。仅加载。我需要单击刷新按钮几次,以创建问题。但有时它甚至在初始渲染时也会发生。
  • 从 Dark Dark Theme 更改为 Light 浏览器主题?因为验证码图像具有与黑色背景匹配的黑色文本。
  • @RaviSamani 有趣的是,我无法在浅色主题中创建相同的问题....我正在努力....嗯也许正如你所说的那样,我在库中有一个透明设置用于capthca,我随机提供...我会注意的。谢谢
  • @RaviSamani 是的,我发现我使用的是随机背景,包括透明背景。从列表中删除它解决了这个问题。

标签: java image gwt loading


【解决方案1】:

从 Dark Dark Theme 更改为 Light 浏览器主题。 由于验证码图像是透明的,带有黑色文本,与黑色背景相匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    相关资源
    最近更新 更多