将事件处理附加到菜单和按钮
Attaching event handling to menus and buttons
我正在使用IE8。因此,请求放置适用于IE8的解决方案。
这个问题由来已久。我在 jsp 中有一个很大的形式。用户填写表单。错误地按下不可编辑文本框上的退格键,输入的数据全部丢失。
为了警告用户,我编写了以下代码:
window.onbeforeunload = function() {
return "Your work will be lost.";
};
但是,现在此警报适用于所有链接,菜单和按钮以及退格键,即使页面卸载在这些情况下有效。
我通过在 onclick 事件上调用一个函数来解决超链接:
var link_was_clicked = false;
window.onbeforeunload = function() {
if(link_was_clicked){
return;
}
return "Your work will be lost.";
};
var elements = document.getElementsByTagName('a');
for(var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function () {
link_was_clicked = true;
}
}
这按预期工作。
但是,我不知道如何对页面上的菜单和按钮执行相同的操作。
我正在使用数组作为菜单:
var menus = new Array();
menus[0] = new menu( .. and so on
项目被添加到菜单中,如下所示:
menus[0].addItem("javascript:loadMyHome();", "", 65, "left", " MyHome", 0);
loadMyHome()
正在提交:
document.myFormName.submit();
同样,按钮定义为:
<INPUT TYPE="button" value="MyButton" onClick="funcMyButton()" />
funcMyButton()
还提交了:
document.myFormName.submit();
感谢您的阅读!
对于退格键,为什么不包括一个window.addEventListener("keydown",onKeyDown,false);
然后稍后在你的代码中具有以下函数: function onKeyDown(e) { if(e.keyCode == 8) do blah;
8 是退格键的字符代码。同样,如果要对网页的其他元素执行相同的操作,请使用对象。例如:Object.Menu1 = document.getElementById('menuId');
然后:Object.Menu1.addEventListener("keydown",onKeyDown,false);
希望这有帮助!
另一种方法是在按下退格键且当前没有文本字段处于焦点时触发警报。
.JS:
window.addEventListener('keydown', function(event){
if(event.keyCode === 8 && document.activeElement.type !== 'text') {
event.preventDefault();
alert('Your work will be lost.');
}
});
使用 IE8 支持(未经测试):
.JS:
var _win = window;
if (_win.addEventListener) {
_win.addEventListener('keydown', showWarning, false);
} else {
_win.attachEvent('keydown', showWarning);
}
function showWarning(event){
if(event.keyCode === 8 && document.activeElement.type !== 'text') {
event.preventDefault();
alert('Your work will be lost.');
}
});
相关文章:
- 下拉菜单在菜单按钮的边缘闪闪发光
- 圆形到圆角三角形(菜单按钮切换)
- 使用PhoneGap禁用Android中的菜单按钮
- 如何在滚动时突出显示菜单按钮 - AngularJs
- 将jQuery菜单按钮链接到url
- 使用一个菜单按钮添加animate-in和animate-out类
- 简单的Jquery菜单按钮重复动画,我怎么能停止这个
- 引导两个响应菜单-单击另一个菜单按钮时折叠一个菜单
- Phonegap+JQuery Mobile:如何从Android菜单按钮弹出
- 使用javascript自动点击youtube评论页面中的菜单按钮
- 菜单打开和关闭菜单按钮 - Jquery
- Joomla 2.5 菜单按钮不起作用
- 如何让我的 ckEditor 菜单按钮显示在两行而不是四行上
- 如何让我的移动菜单按钮显示和隐藏导航栏,以及在负空间中单击时隐藏
- 单击下拉菜单按钮时引导打开链接
- 聚合物:纸张操作对话框打开时,纸张菜单按钮不会关闭
- 引导移动菜单按钮不可见
- 引导滚动间谍不起作用,导航菜单按钮导致标题重新加载
- 在 D3 中按菜单按钮后调用轴
- 如何更改菜单按钮周围的区域以使其可单击