在我的GWT项目中,我目前集成了一个外部JavaScript程序包OpenSeadragon(请参见here),它是具有Zoo,旋转和全屏功能的ImageViewer。到目前为止,它大部分都运行良好。唯一的棘手问题是,从全屏模式返回后,没有其他可点击的东西了。我认为这种严重不良行为的原因是,openseadragon在全屏显示时会将所有其他Dom元素移开(有关更多详细信息,请参见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中的事件处理程序或其他解决方法?
真诚地,
Erik
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();
}
}