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')"/>
È stato utile?

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!');"/>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top