Pregunta

Estoy tratando de agregar un controlador de onClick a un objeto incrustado. Las necesidades de controlador para ejecutar una función que está en un archivo .js externo que está vinculado al archivo HTML actual a través <script src="....

¿Es necesario hacer referencia a la función de forma diferente debido a que se encuentra en otro lugar?

Este es el código en su estado actual (que no funciona, pero también no produce ningún error):

<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53" 
type="image/svg+xml" onClick="buttonEvent('buttonClicked')"/>
¿Fue útil?

Solución

Hay que poner en práctica onclick dentro de el SVG y vincularlo a la función de JavaScript externo usando javascript dentro del SVG. Ver el wiki de SVG para los ejemplos.

Actualización: Al parecer, el SVG wiki no es más. No es de sorprender que las mejores referencias que puedo ahora (rápidamente) encontrar son en sí StackOverflow.

Esta respuesta se describe cómo implementar onclick en el interior del SVG .

Otros consejos

El uso ya sea vinculante Javascript ( Mario Menger respondió que ya).

Si no puede o no utilizar la unión, puede utilizar lo que xil3 contestado con una modificación:

El uso de una etiqueta de anclaje <a href="javascript:someFunc()"></a> vacía como el clic del consumidor. Establecer el mismo de la z-index y posición / tamaño por lo que coloca sobre el objeto SVG (para la compatibilidad cruzada navegador).

Onclick todo debe estar en minúsculas.

<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53" 
type="image/svg+xml" onclick="alert('hello!');"/>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top