Comment déclencher un javascript déclaré dans la partie html depuis une action sur un composant d'une image svg incluse dans la page. Ou encore, une action sur un composant (clic, mouseover…) de l'image devrait faire apparaître une "div" masquée de la page.
L'inverse (action sur le svg depuis un composant de la page) ne semble pas poser de problème. Je suis étonnée de faire chou blanc depuis plusieurs jours de recherche sur tous les forums de la terre…
Le code html (page contenant le svg) :
La tentative de code svg (l'appel js ne fonctionne pas donc) :
L'inverse (action sur le svg depuis un composant de la page) ne semble pas poser de problème. Je suis étonnée de faire chou blanc depuis plusieurs jours de recherche sur tous les forums de la terre…
Le code html (page contenant le svg) :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Intéraction composants XHTML avec SVG</title>
<script language=JavaScript>
function montrer(arg1,arg2) {
var sum=arg1+arg2;
alert(sum);
}
</script>
</head>
<body>
<h1>Diverses intégration de SVG dans du XHTML</h1>
<p>Test du javascript inclus dans le HTML et dont le lien est inséré dans le svg : <a href="javascript:montrer(1,2)">clic pour test</a></p>
<h2>Avec la balise object</h2>
<object data="rond.svg" type="image/svg+xml" width="400" height="400">
On devrait voir une image svg
</object>
<h2>Avec la balise iframe</h2>
<iframe src="rond2.svg" height="400" width="400" frameborder="0">
<p>On devrait voir une image svg ici</p>
</iframe>
</body>
</html>
La tentative de code svg (l'appel js ne fonctionne pas donc) :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="223.86658"
height="229.58157"
id="svg2"
version="1.1"
inkscape:version="0.48.0 r9654"
sodipodi:docname="rond.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.35"
inkscape:cx="221.21664"
inkscape:cy="-33.778423"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="400"
inkscape:window-height="400"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-153.78336,-269.00218)">
<a
id="a2987"
xlink:href="javascript:montrer(1,2)"
transform="matrix(0.52814291,0,0,0.56844712,72.564883,116.0899)">
<path
d="m 577.14287,470.93362 c 0,111.24593 -94.6598,201.42858 -211.42858,201.42858 -116.76877,0 -211.42857,-90.18265 -211.42857,-201.42858 0,-111.24593 94.6598,-201.42857 211.42857,-201.42857 116.76878,0 211.42858,90.18264 211.42858,201.42857 z"
sodipodi:ry="201.42857"
sodipodi:rx="211.42857"
sodipodi:cy="470.93362"
sodipodi:cx="365.71429"
id="path2985"
style="fill:#ff0000;fill-opacity:1;stroke:#241c1c"
sodipodi:type="arc" />
</a>
</g>
</svg>