B/S模式下如何使软件屏蔽系统热键
经常开发B/S模式的软件系统,我发觉在进入主系统首页界面都习惯性的打开一个无工具栏和菜单栏的窗口,首先是为了给用户提供一个比较宽阔的可视和操作空间,再次也避免了用户的误操作产生不良的后果,我的哥们'缺根弦'(名字是不是很酷)写了一个函数,基本上屏蔽掉了一些常用功能的热键,下面看看是怎么写的。
public void HideAllFunction(Page page)
{
if(!page.IsStartupScriptRegistered ("msgHideAllFunction"))
{
string clientScript=@"<script language=JavaScript>
function KeyDown(){
if ((window.event.altKey)&& ((window.event.keyCode==37)||(window.event.keyCode==39))) //屏蔽 Alt+ 方向键 ← //屏蔽 Alt+ 方向键 →
{
event.returnValue=false;
}
if (event.keyCode==116) //屏蔽 F5 刷新键
{
event.keyCode=0;
event.returnValue=false;
}
if ((event.ctrlKey)&&(event.keyCode==78))//屏蔽 Ctrl+n
{
event.returnValue=false;
}
if ((event.shiftKey)&&(event.keyCode==121))//屏蔽 shift+F10
{
event.returnValue=false;
}
if (event.keyCode==122)//屏蔽 F11
{
event.keyCode=0;
event.returnValue=false;
}
}
public void HideAllFunction(Page page)
{
if(!page.IsStartupScriptRegistered ("msgHideAllFunction"))
{
string clientScript=@"<script language=JavaScript>
function KeyDown(){
if ((window.event.altKey)&& ((window.event.keyCode==37)||(window.event.keyCode==39))) //屏蔽 Alt+ 方向键 ← //屏蔽 Alt+ 方向键 →
{
event.returnValue=false;
}
if (event.keyCode==116) //屏蔽 F5 刷新键
{
event.keyCode=0;
event.returnValue=false;
}
if ((event.ctrlKey)&&(event.keyCode==78))//屏蔽 Ctrl+n
{
event.returnValue=false;
}
if ((event.shiftKey)&&(event.keyCode==121))//屏蔽 shift+F10
{
event.returnValue=false;
}
if (event.keyCode==122)//屏蔽 F11
{
event.keyCode=0;
event.returnValue=false;
}
}
function nocontextmenu()
{
event.cancelBubble = true
event.returnValue = false;
return false;
}
document.onkeydown = KeyDown;
document.oncontextmenu=nocontextmenu;
</script>";
page.RegisterStartupScript("msgHideAllFunction",clientScript);
}
}