Hello all,
I am creating a simulation in which the Function keys are used.
I have stolen some Javascript to block the F1 --> F12 keys...
...but it ONLY works when the HTML page is in focus. When the SWF is in focus doesn't work.
Does anybody have any ideas?
~ Thanks!!
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="captivate.css" />
<script src="standard.js" type="text/javascript"></script>
<script type="text/javascript">
var nonChar = false;
var Combo = false;
document.onhelp = new Function("return false;");
window.onhelp = new Function("return false;");
document.onkeydown = function(e) { handleKeys(e); }
function handleKeys(e)
{
isScrolling = false;
ScrollingX = false;
ScrollingY = false;
var character;
var evt = (e) ? e : window.event; //IE reports window.event not arg
if (!evt.stopPropagation)
{
evt.stopPropagation = function() { this.cancelBubble = true; };
evt.preventDefault = function() { this.returnValue = false; };
}
if (!evt.stop)
{
evt.stop = function() {
this.stopPropagation();
this.preventDefault();
};
}
if (evt.type == "keydown") {
character = evt.keyCode;
if (character < 16 || // non printables
(character > 16 && character < 32) || // avoid shift
(character > 32 && character < 41) || // navigation keys
character == 46 || // Delete Key (Add to these if you need)
character == 45 || // Insert Key
(character > 111 && character < 124) // F1 to F12
) {
nonChar = true;
Keyhandler_Meta(character, evt, e); // function to handle non Characters
} else
nonChar = false;
}
else
{ // This is keypress
if (nonChar) return; // Already Handled on keydown
character = (evt.charCode) ? evt.charCode : evt.keyCode;
if (character > 31 && character < 256) // safari and opera
if ((evt.ctrlKey && evt.altKey) || (!evt.ctrlKey && !evt.altKey)) //allow AltGr
Keyhandler_Char(character, evt);
}
}
function Keyhandler_Char(character, evt)
{
var A = String.fromCharCode(character);
evt.stop();
}
function Keyhandler_Meta(Meta, evt, e)
{
if (!evt.kill)
{
evt.kill = function()
{
if (e == undefined) evt.keyCode = false; //Kill IE6+7
evt.stop();
evt.returnValue = false;
}
}
switch (Meta)
{
case 116: //F5
case 117: //F6
case 115: //F4
case 114: //F3
case 113: //F2
case 118: //F7
case 119: //F8
case 120: //F9
case 121: //F10
case 122: //F11
case 123: //F12
case 112: //F1 (note: F1 can't be disabled in IE7)
evt.kill();
window.focus();
break;
default:
break;
}
return false;
}
</script>
</head>
<body>
<div id="CaptivateContent" onkeydown="blockit"> </div>
<script type="text/javascript">
var so = new SWFObject("untitled1.swf", "Captivate", "1025", "799", "10", "#CCCCCC");
so.addParam("quality", "high");
so.addParam("name", "Captivate");
so.addParam("id", "Captivate");
so.addParam("wmode", "window");
so.addParam("bgcolor","#f5f4f1");
so.addParam("menu", "false");
so.addParam("AllowScriptAccess","always");
so.addVariable("variable1", "value1");
so.setAttribute("redirectUrl", "http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash");
so.write("CaptivateContent");
</script>
<script type="text/javascript">
document.getElementById('Captivate').focus();
document.Captivate.focus();
</script>
</body>
</html>