SVG Script ECMAScript onclick


#1

Bonjour,

Je n’arrive pas à faire fonctionner des scripts incorporés aux fichiers SVG.
Par exemple celui-ci :
http://www.yoyodesign.org/doc/w3c/svg1/images/script/script01.svg
view-source:http://www.yoyodesign.org/doc/w3c/svg1/images/script/script01.svg

ou celui-ci :
http://apike.ca/media/svg/exampleJavascript.svg
view-source:http://apike.ca/media/svg/exampleJavascript.svg

Une explication ?
Bonne journée


#2

Que par défaut on ne peut pas exécuter du code javascript dans TW par sécurité ?


#3

J’ai essayé de placer ce fichier sur le même modèle d’une macro avec la même limite.
Et quand bien même… le placement du svg directement sur le dom ne pose pas de problème de sécurité, au pire on casserait le dom sur le navigateur client.
Je pense que c’est une absence de prise en compte du CDATA. Quand tu parles par “défaut”, tu penses à une extension qui pourrait le faire ?


#4

Je voulais dire que par défaut on ne peut pas mettre de code JS car non autorisé par sécurité :wink:

script tags in the tiddler source are not executed, due to security restrictions.

ou alors ce retour de Jeremy (dans le même fil, assez intéressant à parcourir) :

TiddlyWiki is designed to block JavaScript in wiki text content to make sure that it is safe to share wiki text content.

Sinon je pense au tag $:/tags/RawMarkup, que tu retrouve dans le fil, mais pas forcément pratique (j’ai testé, et ça positionne le cercle après la river).


#5

Par sécurité, je n’y crois pas.
Tu crées un simple tiddler et colles ce code pour t’en convaincre :

<embed src="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==">

Pourrais-tu me dire si on peut transclure un tiddler dans un <object> ou un <iframe> ?
un truc du genre : <iframe src={{demo}}>


#6

Et bien voilà, tu l’as la solution, encode ton svg en base64 :wink:


#7

Effectivement, c’est une bonne piste mais un peu contraignante.
Je m’aperçois que je n’ai pas tout dit.
J’ai des paramètres pour le code de mon svg : exemple.svg?paramA,paramB

Il y a peut-être un moyen de cloner le tag $:/tags/RawMarkup pour un rendu sur le tiddler ?