全屏后 EventHandlers 的 GWT 外部 JavaScript 集成 (OpenSeadragon) 问题

GWT external JavaScript integration (OpenSeadragon) problem with EventHandlers after full screen

在我的 GWT 项目中,我目前集成了一个外部 JavaScript 包 OpenSeadragon(参见 here),这是一个具有缩放、旋转和全屏功能的 ImageViewer。到目前为止,它大多运作良好。唯一令人讨厌的问题是,从全屏模式返回后,无法再点击任何内容。 我认为这种非常不受欢迎的行为的原因是,openseadragon 将所有其他 Dom-Elements 移开,当它显示全屏时(请参阅 this bug 了解更多详细信息)。 代码如下:

    public native void createZoomeImage(String ressource, Element where, SingleImageEditor sie)
/*-{
    var viewer =  $wnd.OpenSeadragon({
        element: where,
        showRotationControl: true,
        prefixUrl: "scripts/openseadragon-bin-2.4.2/images/",
        debugMode: true,
        tileSources: ressource
    });
    viewer.addHandler("full-screen", function (data) {
        if(data.fullScreen == false){
                $wnd.activatepanel(sie);
        }
    });
}-*/;

Handler 是我加的,因为一开始我想,再次激活面板就足够了。 ($wnd.activatepanel(sie); 确实引用了 java 方法,它正是这样做的)。然而这并没有改变一件事。 现在,我的问题是:有人知道在 GWT 中刷新事件处理程序的优雅方法或其他解决方法吗?

此致,

埃里克

我明白了:

        var viewer =  $wnd.OpenSeadragon({
        element: where,
        showRotationControl: true,
        prefixUrl: "scripts/openseadragon-bin-2.4.2/images/",
        tileSources: ressource,
    });
    viewer.addHandler("pre-full-page", function (data) {
            data.preventDefaultAction=true;
            openFullscreen();
    });
    function openFullscreen() {
        if (where.requestFullscreen) {
            where.requestFullscreen();
        } else if (where.mozRequestFullScreen) { 
            where.mozRequestFullScreen();
        } else if (where.webkitRequestFullscreen) { 
            where.webkitRequestFullscreen();
        } else if (where.msRequestFullscreen) {
            where.msRequestFullscreen();
        }
    }