JeuWeb - Crée ton jeu par navigateur
[SVG][Javascript] SVGElementInstance has no method getAttributeNS - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [SVG][Javascript] SVGElementInstance has no method getAttributeNS (/showthread.php?tid=5740)



[SVG][Javascript] SVGElementInstance has no method getAttributeNS - Maz - 10-10-2011

Salut, j'essai d'afficher des informations lors d'un clic sur un SVG, j'ai suivis ce tuto à la lettre mais moi j'ai une erreur: SVGElementInstance has no method 'getAttributeNS'

Voici le code:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg externalResourcesRequired="true" width="500" height="500" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="init(evt)">
<script type="text/ecmascript">
<![CDATA[
function init(evt)
{
if ( window.svgDocument == null )
{
svgDocument = evt.target.ownerDocument;
}
tooltip = svgDocument.getElementById('tooltip');
}
function ShowTooltip(evt)
{
tooltip.firstChild.data = evt.target.getAttributeNS("id");
tooltip.setAttributeNS(null,"x",evt.clientX-8);
tooltip.setAttributeNS(null,"y",evt.clientY-5);
tooltip.setAttributeNS(null,"visibility","visible");
}

function HideTooltip()
{
tooltip.setAttributeNS(null,"visibility","hidden");
}
]]></script>
<defs>
<title>Astar: carte à cases hexagonales orientées verticalement</title>
<image id="grass" width="38.64" height="29.32" xlink:href="/assets/grass.svg" />
<image id="water" width="38.64" height="29.32" xlink:href="/assets/water.svg" />
</defs>
<g id="map">
<g class="tuile" x="253.91472899999832" y="4.668907277118108"><use xlink:href="#grass" x="253.91472899999832" y="4.668907277118108" onclick="ShowTooltip(evt)" onmouseout="HideTooltip()" id="x:0y:0" /></g>

</g>
<g><text class="tooltip" id="tooltip" x="0" y="0" visibility="hidden">Tooltip</text></g>
</svg>



RE: SVG + Javascript: SVGElementInstance has no method 'getAttributeNS' - Myrina - 10-10-2011

essaie de mettre:
Code :
tooltip.firstChild.data = evt.target.getAttributeNS(null,'id');

sinon, pour ma part, j'ai préféré utiliser cette exemple: http://svg-whiz.com/svg/Tooltip2.svg


RE: SVG + Javascript: SVGElementInstance has no method 'getAttributeNS' - Maz - 10-10-2011

(10-10-2011, 02:07 PM)Myrina a écrit : essaie de mettre:
Code :
tooltip.firstChild.data = evt.target.getAttributeNS(null,'id');

sinon, pour ma part, j'ai préféré utiliser cette exemple: http://svg-whiz.com/svg/Tooltip2.svg

Même erreur. Je penses que celà vient du fait que l'image sur laquelle je cliques est un fichier .svg externe. d'ou "SVGInstance"

Edit: pour ceux qui aurait le même problème:
evt.target.correspondingUseElement.getAttributeNS(null, 'id')