IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

génération SGV par javascript


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 30
    Points : 25
    Points
    25
    Par défaut génération SGV par javascript
    Bonjour,
    Je travaille sur la génération de SVG par du script.
    je veut créer un rectangle avec une largeur dynamique selon la longueur d'un texte qui doit être positionné dans ce rectangle, pour se faire j'ai écrit ce scripte de test :
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html>
    <html>
      <head>
        <title>Test</title>
      </head>
      <body>
    	  <table border="0">
    	  	<tr>
    	  		<td><input id="txt1" type="text"/></td><td><input type="button" value="Ok" onclick="createRecText(evt)"/></td>
    	  	</tr>
    	  </table>
      <svg xmlns="http://www.w3.org/2000/svg"  id="svgNode" width="730" height="550" onload="createRecText(evt)" >
    	  <script type="text/javaScript">
    	  	<![CDATA[
    	  		function createRecText(evt){
    		  	var doc=evt.target.ownerDocument;
    		  	var textInput=doc.getElementById("txt1").value;
    		  	//création du rectangle
    		  	var rect = doc.createElementNS("http://www.w3.org/2000/svg","rect");
    			rect.setAttributeNS(null,"x","30");
    			rect.setAttributeNS(null,"y","100");
    			rect.setAttributeNS(null,"width",(textInput.getComputedTextLength()+50).toString());
    			rect.setAttributeNS(null,"height","120");
     
    		  	//création du texte
    		  	var txtSvgNode = doc.createElementNS("http://www.w3.org/2000/svg","text");
    			txtSvgNode.setAttributeNS(null,"x","50");
    			txtSvgNode.setAttributeNS(null,"y","120");
    			txtSvgNode.nodeValue=textInput;
    			svgNode=doc.getElementById("svgNode");
    			svgNode.appendChild(rect);
    			svgNode.appendChild(txtSvgNode);			
    	  	} 
    	  	]]>
    	  </script>
      </svg>
      </body>
    </html>
    Le problème c'est qu'il ne génère ni texte, ni rectangle
    de l'aide SVP.

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Merci sekaijin
    après quelques recherches sur la fonction getComputedTextLength() l'erreur etait la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textInput.getComputedTextLength()+50
    En fait, la fonction getComputedTextLength() est une méthode SVG-DOM applicable seulement avec des éléments de type text (text est une balise à part entière dans SVG). Elle permet de donner la largeur en pixel prise par un text SVG dans un contexte donné (taille font, type font, longueur de la chaîne...).
    Donc son utilisation est impossible avec une chaîne de caractère.
    Lien sur SVG qui m'a trop plais: http://www.learnsvg.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Redimensionnement DIV par javascript
    Par PoZZyX dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/11/2005, 11h32
  2. [PHP-JS] Passage des parametres par JavaScript
    Par anutka dans le forum Langage
    Réponses: 7
    Dernier message: 20/10/2005, 11h02
  3. Réponses: 2
    Dernier message: 23/08/2005, 19h20
  4. Selectionner par javascript une partie de texte
    Par Oluha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/06/2005, 16h53
  5. [C#] Confirmation par javascript
    Par Drag dans le forum ASP.NET
    Réponses: 5
    Dernier message: 26/08/2004, 18h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo