我正在编写一个基于Web的应用程序,供我工作的业务内部使用.这是一个相当复杂的应用程序,有许多表单允许用户查看和输入数据,一旦保存将存储在数据库中.
我急于避免的一件事是允许存在用户可能在浏览器中输入大量数据的情况,然后(有意或无意地)导航离开页面而不保存更改.为此,我已经实现了一个入口页面,它打开了一个新的浏览器窗口,其中根本没有导航控件; 只有网页本身提供的内容.
但是,用户仍有两种可能丢失数据的方式:
浏览器"关闭"按钮仍处于启用状态,用户可能会因无意中单击它而失去工作.我可以忍受这个,因为它是在帮助用户不要在脚下射击自己的极端.
在Internet Explorer中(显然,在Firefox中),Backspace按钮的工作方式类似于Back按钮.我只是偶然发现了这个,并且还没有找到一种简单的方法来阻止这种行为.这可能是一个问题,因为无意中使用Delete键(例如,将光标定位在只读文本框中,或者当光标不在页面中的任何特定字段上时)将导航离开页面.
我想做的事情至少是阻止Backspace从页面导航,如果该页面上有任何用户可写字段,并且自表单加载以来用户已经更改了这些字段中的任何字段.理想情况下,当用户登录此Web应用程序时,我想完全禁用Backspace键的这种特定用法.为实现这一点,我能想到的两种可能的方法是:(1)在每个页面加载时清除浏览器的历史记录,或者(2)捕获Backspace键,并且只有当光标位于a中时才允许它工作可以更改文本的字段(例如文本框).
任何人都可以建议我如何实现这些方面的任何一个?解决方案需要是程序化的,而不是必须在公司的每个浏览器上手动配置的东西.