Démonstration d'un site en mode local : IE8 bloque tous les fichiers HTML comportant du contenu actif, ActiveX et/ou Javascript.
Sauf erreur, il n'existe que deux palliatifs possible :
1/ Soit insérer une ligne
<!-- saved from url=(0013)about:internet -->
dans le fichier .html comme Microsoft le propose. Cette ligne empêcherait le blocage de l'ordinateur local en définissant le fichier comme faisant partie de la zone Internet, et non pas de la zone locale.
Cela risque-t-il de créer un faille de sécurité si elle est présente dans le code "en ligne" ?
2/ Soit dans les propriétés d'Internet, l'onglet avancé cocher "Autoriser l'exécution du contenu actif dans les fichiers de mon ordinateur.."
Mais comment détecter en javascript que cette case n'est pas cochée pour inviter l'utilisateur de le faire en toute connaissance de cause ?
Vous pouvez faire quelque chose comme ce qui suit.
L'activeX utilise forcément le javascript. Donc on peut déjà signaler que le javascript est désactivé.
Le principe : on met un div en display block.
Dans le body on appelle une function qui doit mettre ce div en display none.
Si le javascript est désactivé, il ne pourra pas être mis en display none, et donc le div apparaîtra.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Page sans titre</title>
<script type="text/javascript">
function jscript() {
document.getElementById("testJS").style.display = "none";
}
</script>
</head>
<body bgcolor="#ffffff" onload="jscript()">
<div id="testJS" style="display:'block';color:#FF0000;">
Ce site utilise JavaScript et les contrôle ActiveX<br />
Or votre navigateur n'accepte pas le JavaScript.<br />
Veuillez le configurer pour continuer...<br />
</div>
</body>
</html>