Salut,
J'essaye en vain de créer dynamiquement par JavaScript un texte dans une page VML.
La communauté VML étant pauvre, les ressources sur Internet le sont aussi, donc me voilà ^^
J'ai réaliser un exemple tout spécialement pour cette question, vous pourrez éventuellement tester sur votre ordi si le coeur vous en dit.
textbox.html :
textbox.js :
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 <html xmlns:v="urn:schemas-microsoft-com:vml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <script src="textbox.js" type="text/javascript"></script> <link rel="stylesheet" href="css/style.css" type="text/css" /> <title>Test ajout element textbox pour VML</title> </head> <body onload="loadVML();"> <div id="ma_div" style="max-width: 400px; width: 400px; max-height: 300px; height: 300px; background-color: #000; overflow: hidden;" ></div> </body> </html>
Problématique, le rectangle s'affiche, mais pas le texte.
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
31
32
33
34
35
36
37
38
39
40 function loadVML() { // Init VML document.namespaces.add( "v" , "urn:schemas-microsoft-com:vml" ); vmlStyleSheet = document.createStyleSheet(); vmlStyleSheet.cssText = "v\\:* {behavior:url(#default#VML);display:inline-block;}"; // Insertion d'un élément VML dans une div HTML viewVML = document.createElement( 'v:group' ); elementDiv = document.getElementById( 'ma_div' ); viewVML.style.width = 400; viewVML.style.height = 300; viewVML.coordorigin = '0,0'; viewVML.coordsize = '400,300'; elementDiv.appendChild( viewVML ); // Insertion d'un rectangle dans l'élément VML elementRect = document.createElement( 'v:rect' ); elementRect.style.position = 'relative'; elementRect.style.left = 100; elementRect.style.top = 200; elementRect.style.width = 150; elementRect.style.height = 50; elementRect.fillcolor = 'rgb(255,165,0)'; viewVML.appendChild( elementRect ); // Insertion d'un texte dans l'élément VML // C'est ce code qui ne fonctionne pas elementText = document.createElement( "v:textbox" ); elementText.style.left = 100; elementText.style.top = 100; elementText.appendChild( document.createTextNode( "test" ) ); viewVML.appendChild( elementText ); }
Vous remerciant à l'avance de l'aide que vous pourrez m'apporter.
Note : Le VML ne fonctionne que sous Internet Explorer alors ne testez pas sous firefox.
EDIT : résolu ^^
Il fallait contenir le v:textbox dans un v:shape.
Partager