我有一个显示交互式地图的Java小程序。通过使用滚轮,用户可以放大/缩小地图。遗憾的是,Web浏览器(Firefox)也响应滚动事件,并且小程序最终会从可见页面滚动。
我的问题是,当鼠标位于applet的边界内时,如何阻止浏览器响应?
到目前为止,我已尝试修改HTML以使applet请求重点
applet.focus()
我还尝试在我的applet的Java代码中添加一个语句,如下所示
requestFocus();
但两者都没有解决问题。
我可以在applet中添加特定的放大/缩小控件,或者可能重构我的网页以减少网页滚动的需要,但如果滚轮完成缩放地图的工作会很好仅
答案 0 :(得分:4)
使用javascript并执行以下操作:
var applet = document.getElementById("appletID");
applet.mouseover = function(e) {
document.body.onscroll = function(e) {
e.preventDefault();
}
}
applet.mouseout = function(e) {
//replace with empty function
document.body.onscroll = function(e) { }
}
这不是未经测试的代码。可能是一对错字
编辑像我说的错别字...我测试了这个,它确实有效:window.onload = function() {
var applet = document.getElementById("header");
applet.onmouseover = function(e) {
window.onscroll = function(e) {
//scroll where you want to be (the top)
scroll(0,0) ;
}
}
applet.onmouseout = function(e) {
//replace with empty function
window.onscroll = function(e) {}
}
};
使用滚动方法不是很干净,但preventDefault似乎不起作用......
答案 1 :(得分:0)
您是否尝试将MouseListener附加到显示地图的容器,然后让容器requestFocus()?