我们正在创建一个Web应用程序来替换旧式的绿屏应用程序。在绿屏应用程序中,当用户按下Insert键以在改写和插入模式之间切换时,光标会改变以指示用户当前所处的输入模式。在IE(该公司的官方浏览器)中,改写模式也有效,但是在用户开始输入并且可能意外覆盖现有信息之前,没有关于改写模式是否开启的可视指示。如果处于改写模式,我想在屏幕上放置某种视觉指示器。
如何从Javascript确定浏览器是否处于“改写模式”?
是否有一些属性或功能我可以查询以确定浏览器是否处于改写模式?即使是特定于IE的解决方案也会有所帮助,因为我们的公司政策要求浏览器使用IE7(纯粹的折磨,顺便说一句)。
(我知道一个解决方案是检查Insert键的按键。但是,这是一个我宁愿避免的解决方案,因为该方法看起来有点不稳定且容易出错,因为我不能保证用户在他/她点击我的页面之前会处于什么模式。)
这个问题背后的原因:
绿屏应用程序的这一部分的功能是用户可以从“预先格式化的文本正文”列表中进行选择。
原油,例如
The excess for this policy is: $xxxxxx and max limit is:$xxxxxx Date of policy is: xx/xx/xxxx and expires : xx/xx/xxxx Some other irrelevant text
选择此“预先格式化的文本”后,用户将使用改写类型将x替换为实际值,而不会干扰文本其余部分的对齐。
(很明显,如果他们愿意的话,他们仍然可以编辑'预先格式化的文本'的任何部分。通常情况下,他们只是希望替换文本的特定部分。保持对齐很重要这些文本部分最终可以打印在文档上。)
当然,只需先选择要替换的x就可以达到同样的效果,但是(关于简化向Web应用程序的过渡)以允许旧方法做事继续工作,同时仍允许更精通技术的用户使用“网络方法”。
基本上,我们试图让从绿屏应用程序到网络应用程序的初始过渡尽可能无缝,以尽量减少长期绿色安检人员的阻力。
答案 0 :(得分:1)
在IE中,您可以使用document.queryCommandValue("OverWrite")
。
function isOverwriteEnabled() {
try {
// try the MSIE way
return document.queryCommandValue("OverWrite");
} catch (ex) {
// not MSIE => not supported
return false;
}
}
由于Mac没有也不支持“插入”键,因此Safari永远不会支持“插入”模式。
对于Chrome和Firefox,不鼓励“插入”模式支持,因为Mac没有。 (另请参阅“其他”)
这也意味着,由于Windows支持“插入”模式,因此IE很可能始终支持它。
Firefox多年来一直有bug report classified as "WontFix",因此可能永远不会支持“插入”键。
答案 1 :(得分:0)
问题在于,如果用户在输入页面后按下插入键,则可以轻松追踪。
但是当用户在进入您的页面之前已经按下了插入键时,这似乎是一项艰巨的任务。
答案 2 :(得分:0)
我建议仔细考虑'改写'功能。这种行为在网络环境中是否有意义?
“翻译”功能在旧的ANSI演示文稿中提供了哪些实用程序,这是通过网络提供的?
除非我完全误解你的问题(如果是这样道歉),我觉得开发意图可能与用户期望和典型的网络惯例不一致。
如果目标是制作一个页面:
...那为什么不使用动态表单输入?
当用户点击特定的HTML片段时,会使用JavaScript将内容显示为默认值与所选HTML标记匹配的元素。
编辑完成后,将解析输入,更新页面,并从显示中删除表单输入。
这种方法会满足您的需求吗?