Come aggiungere JavaScript gestore onclick a un oggetto HTML incorporato?
-
01-10-2019 - |
Domanda
Sto cercando di aggiungere un gestore onClick a un oggetto incorporato. Le esigenze dei gestori di eseguire una funzione che è in un file js esterni che è legata al file HTML corrente tramite <script src="...
.
Devo riferimento alla funzione in modo diverso a causa di essa essendo situato altrove?
Ecco il codice nella sua forma attuale (che non funziona, ma anche non produce eventuali errori):
<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53"
type="image/svg+xml" onClick="buttonEvent('buttonClicked')"/>
Soluzione
È necessario implementare onclick all'interno l'SVG e collegarlo alla funzione JavaScript esterno utilizzando JavaScript all'interno del svg. Vedere la wiki SVG per gli esempi.
Aggiornamento: A quanto pare il wiki SVG non c'è più. Nessuna sorpresa che i migliori riferimenti ora posso (in fretta) trovare sono su StackOverflow stessa.
Questa risposta viene descritto come implementare onclick all'interno del svg .
Altri suggerimenti
Usa sia vincolante javascript ( Mario Menger ha risposto che già).
Se non può o non utilizzare l'associazione, è possibile utilizzare ciò che xil3 , rispose con una sola modifica:
Usa un tag di ancoraggio <a href="javascript:someFunc()"></a>
vuota come il clic del consumatore. Impostarlo di z-index e posizione / dimensione quindi posizionata sopra l'oggetto SVG (per la compatibilità cross-browser).
Onclick dovrebbero essere tutti in minuscolo.
<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53"
type="image/svg+xml" onclick="alert('hello!');"/>