11548 sujets

JavaScript, DOM et API Web HTML5

.. bonsoir à tous !

je désire afficher des informations depuis une page Html concernant un fichier SVG
importé via une balise <embed> ( c'est celle qui fonctionne meme si ce n'est pas la recommandation du w3c) et cela grace à un fichier Javascript ...

voir la page : http://svg-devzone.homelinux.com/svg/lignes.html

Mon raisonnement était le suivant (un peu tirer par mon cheveux ! Smiley langue )
j'ai un code javascript (une fonction) qui donne des infos sur un document :


function line_infos(evt) {
	var objet_cible = document.getElementById("ligne");
	alert("nodeName : " + objet_cible.nodeName);
	alert("nodeType : " + objet_cible.nodeType);
	alert("nodeValue : " + objet_cible.nodeValue);
}


rien de transcendant ...
J'ai un fichier SVG que j'affiche via embed .. donc aucune représentation structurel de ce graphique dans ma page Html


<embed src="../Svg_Library/line.svg" width="200"
height="200" type="image/svg+xml" 
pluginspage="http://www.adobe.com/svg/viewer/install/">
</embed>


je ne peux pas me servir de ce document depuis ma page comme "document cible"
et si j'appelle un fichier JS externe (via un "bouton <input> + gestionnaire d'évènement ) il ne peut savoir quel document SVG est concerné ( ou je sais pas faire !)

Ma solution : j'ai inséré le JS dans le document SVG ( http://svg-devzone.homelinux.com/Svg_Library/line.svg ) et l'élément racine contient l'attribut gestionnaire onclick="ma_fonction" ..

le code JS est appelé par du code pas catholique du tout Smiley decu depuis le Html)

<script src="../Svg_Library/line.svg" type="text/javascript" charset="utf-8"></script>

je me suis dis ; ni vu ni connu le lien va chercher le javascript dans le Doc Svg ..

et la je peux agir sur le graphe Svg depuis ma page Html ... Smiley rolleyes

... ben oui ! mais ca ne marche qu'avec Firefox 1.5 ( linux) .
Opera lui ne me lit plus le graphe concerné et me demande meme de charger le plugins de Svg (m'enfin Opera tu sais bien que le Svg est ton ami et en natif en + )
???

Sous IE je sais pas j'ai pas IE ( pas envie d'émuler avec Wine qui m'accepte des Exe dans le système .. Smiley ravi )

Alors si vous avez une idée pour pouvoir à parir d'une page Html , appeller un code JS qui intervient sur un Document Svg (Xml) via le Dom ... Smiley rolleyes Smiley rolleyes ?
Surement une histoire de link xlink et import !!!?

merci de votre aide
++

edit : Sous IE je pense pas que cela marche vu que le viewer d'Adobe lors du parse affecte svgDocument comme nom du document ..et j'ai pas mis le code :

function init(evt) {
    if ( window.svgDocument == null )
        svgDocument = evt.target.ownerDocument;
}

qui gére cela !
Modifié par kzone (23 Oct 2006 - 18:30)
.....

bonjour t'atous ...

je me suis pris la tete tout seul et il n'y pas plus de prbléme d'appeller un js
externe depuis un embed embarqué dans un Html que d'animation dans un
dessin des pokemon

Smiley biggol ++

PS: a propos cela marchait sous IE (6 ou 7 )
ps ' : dans les conversation reportée sur radio-microsoft , il n'exclue pas d'étudier une implémentation 'minimal' (??!) du Svg ...--> IE 8 ou 9 !! Smiley rolleyes
Modifié par kzone (23 Oct 2006 - 18:33)