Comment ajouter JavaScript gestionnaire onClick à un objet HTML intégré?
-
01-10-2019 - |
Question
Je suis en train d'ajouter un gestionnaire onClick à un objet incorporé. Les besoins de gestionnaire pour exécuter une fonction qui se trouve dans un fichier .js externe qui est lié au fichier html courant via <script src="...
.
Ai-je besoin de faire référence à la fonction différemment parce qu'elle est située ailleurs?
Voici le code tel qu'il est actuellement (ce qui ne fonctionne pas, mais aussi ne produit pas d'erreurs):
<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53"
type="image/svg+xml" onClick="buttonEvent('buttonClicked')"/>
La solution
Vous devez implémenter onclick dans le svg et le lier à la fonction JavaScript externe à l'aide javascript à l'intérieur du svg. Voir le wiki SVG pour des exemples.
Mise à jour: Apparemment, le wiki SVG est plus. Pas étonnant que les meilleures références que je peux maintenant (rapidement) trouver sont sur StackOverflow lui-même.
Cette réponse décrit comment implémenter onclick à l'intérieur du svg .
Autres conseils
Utilisez soit la liaison javascript ( Mario Menger a répondu que déjà).
Si vous ne pouvez ou ne pas utiliser la liaison, vous pouvez utiliser ce que xil3 avec une modification répondu:
Utilisez une balise d'ancrage vide <a href="javascript:someFunc()"></a>
comme consommateur de clic. Réglez cette z-index et la position / taille de sorte qu'il positionné sur l'objet SVG (pour la compatibilité inter-navigateur).
Onclick doivent tous être en minuscule.
<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53"
type="image/svg+xml" onclick="alert('hello!');"/>