全屏后 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();
}
}
在我的 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();
}
}