GWT 图像加载处理程序



GWT: 2.6.1
我想在加载图像时执行操作(图像 src)。

我试过这个,但 onLoad 事件从未被触发:

    final Image img = new Image();
    img.addLoadHandler( new LoadHandler()
    {
        @Override
        public void onLoad( LoadEvent event )
        {
            //action
        }
    } );
    img.setUrl( "/image.png" );

然后我试了这个:

    final Image img = Image.wrap( Document.get().createImageElement() );
    img.addLoadHandler( new LoadHandler()
    {
        @Override
        public void onLoad( LoadEvent event )
        {
            //action
        }
    } );
    img.setUrl( "/image.png" );

它奏效了...我不明白为什么第一个代码什么都不做。

重要提示:在这两个示例中,我没有将 Image 对象放入 dom 中(= 图像未附加)。

在这个问题中,原因似乎是图像没有附加。但是在我的第二个示例代码中,图像也没有附加?右?

如果你看一下 wrap() 方法的文档,它说This element must already be attached to the document. .因此,当您实际检查wrap()的源代码时,它会调用onAttach(),这实际上将事件处理程序注册到 DOM 元素。因此,不同之处在于图像对象认为元素在未处于该状态时已附加。

现在,在wrap()入口处,有断言检查条件是否满足。尽管您需要启用断言才能使它们有效。

相关内容

最新更新