[VML] créer un element v:textbox par JavaScript
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 :
Code:
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> |
textbox.js :
Code:
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 );
} |
Problématique, le rectangle s'affiche, mais pas le texte.
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.