Hola:
Supongo que para la primera de las opciones bastaría con usar el evento click del recuadro para no hacr nada...
onclick="return false"
...
Aunque pensando que puede existir burbujeo, se podría usar su evento mouseover para indicar que se está encima con una variable y cambiarlo al salir y consultar el valor de la variable cuando se ejecute el script...
<body onclick="if (fuera) actuar()" >
<script >var fuera=true;</script>
...
<div onmouseover="fuera = false" onmouseout="fuera = true" >
...
</div>
</body>
Pruébalo y nos comentas...
Saludos