Bonjour,

J'essaye de déplacer des divs dans une iframe éditable, ce script marche sous IE7 et Firefox, mais lorsque j'essaye de le lancer sous IE6 il m'affiche une erreur : permission refusée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<html>
	<head>
		<script type="text/javascript" src="jquery-1.2.4a.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){
			var ifr = $('<iframe>'); // on créé l'iframe
			$('textarea').after(ifr);
 
			var d = ifr.contents().get(0);
			var options = {
				html : '<html><head></head><body>DEFAULT_CONTENT</body></html>'
			}
			// on rempli le contenu
			d.open();
			d.write(options.html.replace(/DEFAULT_CONTENT/,$('textarea').val()));
			d.close();
 
			// on rend l'iframe editable
			d.designMode = 'on';
 
			if($.browser.msie){ // permet de déplacer les divs et les images sous IE6 et 7
				d.execCommand("2D-position", false, true); // permission refusée sous IE6 ????
			}
			});
		</script>
	</head>
	<body>
		<textarea><div style="position:absolute;">test d'une div</div></textarea>
	</body>
</html>
Lorsque je ne crée pas dynamiquement l'iframe (comme dans le code ci-dessous), je peut déplacer les divs et je n'ai pas d'erreur sous IE6
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
Fichier : index.html
<html>
        <head>
	</head>
	<body>
                  <iframe src="iframe.html"></iframe>
	</body>
</html>
 
Fichier : iframe.html
<html>
	<head>
		<script type="text/javascript" src="jquery-1.2.4a.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){
				// on met la page en mode design a la fin
				document.designMode = 'on';
				document.body.contentEditable = true ;
				if($.browser.msie){ // permet de déplacer les divs et les images sous IE6 et 7
					document.execCommand("2D-position", false, true); // marche sous ie6 ici !?! 
				}
			});
		</script>
	</head>
	<body>
	</body>
</html>
Je viens de passer 2 jours sur ce problème et je ne comprend toujours pas pourquoi sous IE6 ça ne marche pas, pour cette application j'ai quelque contrainte, je ne dois avoir de fichier iframe.html, je dois donc générer le contenu avec du javascript.