2010-05-17 3 views
1

Le code suivant fonctionne dans Firefox 3.6, mais pas dans Internet Explorer 8:Impossible de passer sur designMode dans Internet Explorer

<html> 
<head> 
    <title>Example</title> 
    <script type="text/javascript"> 
     function init() { 
     alert(document.designMode); 
     document.designMode = "on"; 
     alert(document.designMode); 
     } 
    </script> 
</head> 
<body onload="init()"> 
</body> 
</html> 

Dans FF les alertes montrent 'off', puis 'sur'; dans IE, ils sont tous les deux 'Off'.

Qu'est-ce que je fais mal?

Répondre

2

Même si cela ne changera pas ce que les alertes montrent, il tournera sur un mode modifiable dans IE:

<html> 
<head> 
    <title>Example</title> 
    <script type="text/javascript"> 
     function init() { 
     alert(document.designMode); 
     document.designMode = "On"; 
     document.body.contentEditable = 'true'; 
     alert(document.designMode); 
     } 
    </script> 
</head> 
<body onload="init()"> 
</body> 
</html> 

Vous pouvez tester en plaçant du contenu factice dans le corps de la page (comme <p>Test</p>) et chargement à la fois FF et IE. C'est une solution de contournement appropriée pour au moins IE8.

+0

contentEditable fait l'affaire! (Et les alertes étaient juste là pour le débogage de toute façon.) TVM. –

0

L'Internet Explorer documentation semble indiquer que la propriété designMode est sensible à la casse et doit être mis à "On", non "on".

+0

Non, cela ne l'a pas corrigé. Incidemment, si j'utilise une valeur absurde comme "xx", l'assignation génère une exception, donc je suppose que "on" et "On" sont traités de la même manière. –

+0

Eh bien, ça valait le coup. Je parierais que la réponse d'EAMann serait une solution de rechange décente. – Syntactic

+0

J'ai effectivement lu que le support pour la propriété 'designMode' sera finalement abandonné en faveur de la méthode' contentEditable'. Apparemment, ils fonctionnent un peu différemment et le support multi-navigateur pour 'contentEditable' est plus profond que pour' designMode'. Cependant, jusqu'à ce que les gourous des normes fassent l'appel officiel, nous devrions probablement développer les deux à l'esprit. – EAMann

2

Vous pouvez avoir plus de chance avec l'attribut contentEditable dans IE, bien que designMode soit la norme.