11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

J'espère avoir su donner un sujet explicite à mon post, mais détaillons d'avantage.

J'aimerais être autant chez moi dans le SVG embed dans mon html que dans mon html. Je souhaite donc pouvoir modifier la structure du SVG par les scripts de ma page HMTL. Après de longues recherches j'arrive à le faire grace à la phase d'initialisation suivante.
svgDocument = document.getElementById('zoneSvg').getSVGDocument(); 

'zoneSvg' est bien entendu l'Id donnée à la balise EMBED qui me permet d'insérer mon SVG.
Mais j'aimerai aller plus loin et c'est là que je n'ai pas trouvé d'exemple.
J'ai insérer dans mon SVG des scripts et des variables globales et j'aimerai y avoir accès de mon Html.
L'inverse n'a pas posé de problème. Avec IE l'on peut appeller les fonctions du HTML et les variables global du HTML dans le SVG et chez FF il suffit de redéfinir dans le SVG les fonctions de la sorte
var fctDuHtml=top.fctDuHtml;

MAIS l'inverse... impossible.
Je ne peux faire
svgDocument.fctDuSvg() 
dans les scripts de l'HTML.

Quelqu'un aurait-il déjà réussi l'opération, oubien une suggestion à me faire?
Modifié par LeeRoy (20 Apr 2007 - 14:39)
Salut,

Il me semble que tu devrais pouvoir faire :
var svgWin = document.getElementById('zoneSvg').Window;

svgWin.fctDuSvg();
Merci beaucoup, enfin la sortie du tunnel Smiley smile

Ta solution fonctionne parfaitement (je peux lancer les scripts du SVG à partir du html et je peux utiliser les variables globales du script du SVG) sous IE6, et malheureusement, pas sous firefox.

En effet, firefox à le toupet de répondre undefined à mon alert(svgWin) alors que IE6+ASV répond poliment [object Window]

As-tu une idée de l'origine cette étrange réaction?
Modifié par LeeRoy (19 Apr 2007 - 12:14)
En fait, la solution que je t'ai donnée semble être propriétaire pour ASV.

Jonathan Watt propose sur son site des méthodes qui fonctionnent apparemment pour IE et Firefox : pour embed et object.
Voilà je suis actuellement en stage. Parmi mes objectif je dois réaliser une carte en SVG.

Je souhaiterais pouvoir afficher certaines couches de mon SVG grâce à un choix fait par checkbox en HTML.

Il faut donc que j'utilise une communication entre du javascript et le SVG.

Mon problème: La méthode d'accès au svg ne marche pas et me renvoi null:

var svgDocument = document.getElementById('svg').getSVGDocument();
alert (svgDocument);

Je suis sous FF avec ASW6. J'ai essayé sans (avec le plug in natif de FF 2.0) et ca ne marche pas non plus!

Y a t-il une solution ? Il semblerai que LeeRoy ai déjà réussi à faire ça!!!

Merci
bonjour ,

je suis en train de remettre en ligne quelques articles sur le Svg et Javascript et si
celui-ci peut t'aider ...

++
Modifié par kzone (31 May 2007 - 22:26)