svg+javascript+firefox

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
mon nom est personne

svg+javascript+firefox

Message par mon nom est personne »

bonjour,

Comment puis-je accéder depuis mon svg à une fonction javascript contenue dans la page html qui appelle le fichier svg ??
Ma page focntionne sous IE mas pas sous firefox.

Voici le bout de code :

dans le svg :
<script type='text/javascript'>
var doc;
function onload(evt)
{
var target = evt.getTarget();
doc = target.getOwnerDocument();
}
var current = '';
function mouseclick(id)
{
select_zone(id);
}
</script>

j'appelle le svg dans ma page html :
<embed height="350" width="350" name="Map" src="./svg/carte_coloree/carte_init.svg" type="image/svg">

et la focntion select_zone se trouve dans ma page html


Merci
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Déjà, <embed> n'est pas un moyen valide d'appeler les SVG. Il s'agit d'une vieille balise inventée par Netscape et jamais standardisée.

Tu dois utiliser l'élément object :

Code : Tout sélectionner

<object type="image/svg" data="./svg/carte_coloree/carte_init.svg" />
(il faut ajouter un <param filename="./svg/carte_coloree/carte_init.svg" /> pour que ça fonctionne dans IE).

Ensuite, comment as-tu défini ta fonction select_zone ?
mon nom est personne

Message par mon nom est personne »

Salut,

Ma fonction select_zone est en fait dans un fichier .js que j'inclu au début de ma page HTML. Je vais déjà essayer de changer la balise embed dans mon HTML
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Sinon tu peux aussi nous donner directement l'adresse du site pour qu'on puisse voir :wink:
mon nom est personne

Message par mon nom est personne »

Bonjour,

Je ne peux pas vous donner l'adresse car je développe en local.
En fait mon probleme est que mon svg represente une carte cliquable. La fonction select-zone me permet de recuperer l'identifiant de la zone qui a été cliquée. Ensuite cet identifiant me sert dans mon formulaire html et dans d'autres fonctions javascript.

Merci pour votre aide
mon nom est personne

svg+javascript

Message par mon nom est personne »

bonjour,

Je ne trouve pas de solution à mon problème !! Quelqu'un aurait-il une idée ou faut-il laisser tomber firefox pour retourner sous IE ???

Merci
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Ce n'est pas parce que toi tu retournes sous IE que tes visiteurs feront de même. Comme je l'ai dit, sans code, sans exemple, sans rien, eh ben&#133; on ne fait rien :?
mon nom est personne

Message par mon nom est personne »

Salut,

Mais je developpe en LOCAL, donc pas d'acces exterieur.
Le probleme est juste de savoir comment appeler depuis mon svg une fonction javascript qui se trouve dans la page html
Flore
Administratrice
Messages : 3567
Inscription : 19 nov. 2003, 23:04

Message par Flore »

mon nom est personne a écrit :Mais je developpe en LOCAL, donc pas d'acces exterieur.
Et alors ? Tu as un code non ?
Soit tu le copies ici et on peut t'aider, soit on ne peut rien faire...
Flore
Mac OSX + Nightly / Laptop Linux Mint + Nightly / Nightly sur Android
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Je répète encore une fois si nécessaire qu'il faut utiliser l'élément object pour insérer un objet dans une page.

Embed n'a jamais été standardisé, ce n'est qu'une relique du passé dont tu peux te passer :wink:
mon nom est personne

Message par mon nom est personne »

Voila en gros ce que je fais dans mon code. Je ne peux pas déposer l'ensemble du code ici car je travaille pour une entrprise

dans le svg :

Code : Tout sélectionner

<script type='text/javascript'>
var doc;
function onload(evt)
{
var target = evt.getTarget();
doc = target.getOwnerDocument();
}
var current = '';
function mouseclick(id)
{
select_zone(id);
}
</script>

j'appelle le svg dans ma page html :
<embed height="350" width="350" name="Map" src="./svg/carte_coloree/carte_init.svg" type="image/svg">
et la focntion select_zone se trouve dans ma page html

Je ne sais pas comment vous expliquer autrement peut être que je m'exprime mal
Merci
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Pfff :roll:
Je dois l'écrire en rouge, gros, gras, défilant, clignottant ?

  1. Vire le embed et remplace-le par un object
  2. Sans le code de la fonction select_zone, comment veux-tu qu'on te dise quoi que ce soit ? On s'en fout de savoir qu'elle est dans un autre fichier, ça n'a aucune importance (normalement). Mais sans son code on ne peut rien faire !
[/color][/b][/size]

C'est mieux comme ça ? :lol:
mon nom est personne

Message par mon nom est personne »

Ca ne sert à rien de s'énerver comme ça !
J'ai deja dit que le probleme est que je ne passe pas du tout dans la fonction.

Je récapitule :
J'ai fait un test en mettant une fonction dans la page HTML : la je te livre le code la fonction :

Code : Tout sélectionner

function toto (){
alert("coucou");
}
Et figure toi qu'il ne PASSE PAS DANS LA FONCTION !!
chBok
Iguane
Messages : 991
Inscription : 17 oct. 2003, 19:17

Message par chBok »

Tu utilises du SVG dans ta page HTML mais les scripts externes ne sont accessibles qu'avec MSIE. Je pense que c'est normal car MSIE utilise pour cela des contrôles activeX, invisibles pour toi, mais bien présents. Ils ne fonctionneront pas avec Firefox.

:idea: Il faudrait que tu testes avec Firefox 1.5 l'inclusion de svg dans une "simple" balise <svg xmlns="http://www.w3.org/2000/svg">...</svg>. De ce fait, tu enlèves des balises <embed> ou <object>. (Plus d'info...)

Comme le SVG accède maintenant au objets du DOM, je pense qu'il pourra accéder à un script (je suis confiant mais je n'ai pas encore testé).
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

mon nom est personne a écrit :Ca ne sert à rien de s'énerver comme ça !
Je ne m'énerve pas, il en faudrait bien plus que ça. Remarque le petit " :lol: " à la fin de mon message :wink:
mon nom est personne a écrit :J'ai deja dit que le probleme est que je ne passe pas du tout dans la fonction.
Ah bon ? Il ne me semble pas avoir lu ça (ou alors c'était implicite ? Il faut se méfier des implicites :lol: ).

Bon, ben au moins j'aurai appris quelque chose aujourd'hui :)
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités