« l33t gray 2.0 - b2evolution skin | Mac Versus PC (the musical) » |
Firefox got me the other day with this one when I was trying to manually scroll the contents of an iframe because I was trying to achieve a bouncing effect when scrolling between different sections. And for some reason, Firefox would often mysteriously scroll me further then where I was suppose to go.
To best illustrate, have a look at this demo page which shows 2 iframes with slightly different content. In Safari and IE, using arrow up/down on both iframes examples will not scroll the text. However, in FF, if return false is not present in the event, then the scrolling will still occur.
The first iframe without return false has the following Javascript code,
<script type="text/javascript">
keyCatcher=function(e)
{
if(e)
{
if (e.stopPropagation) e.stopPropagation();
e.cancelBubble = true;
e.returnValue = false;
}
}
document.onkeypress=keyCatcher;
</script>
And the missing piece of the FF puzzle is in second iframe
<script type="text/javascript">
keyCatcher=function(e)
{
if(e)
{
if (e.stopPropagation) e.stopPropagation();
e.cancelBubble = true;
e.returnValue = false;
}
/* You need to return false here for Firefox! */
return false;
}
document.onkeypress=keyCatcher;
</script>
Has been tested and known to affect both FF 2 and FF 3