Sto lavorando con una libreria di caricamento file Javascript, e una delle sue caratteristiche è che utilizza attributi di dati inline HTML5 per passare le informazioni al plug-in.Passaggio di una funzione Javascript tramite attributi dati in linea
Questo funziona perfettamente per qualsiasi dato correlato, stringhe, numeri ecc., Tuttavia il plugin ha alcuni metodi di callback a cui è possibile assegnare la funzione. Il mio problema è che quando si cerca di passare una funzione javascript attraverso questi dati in linea attributi, come questo:
<input type="file" name="test" data-on-finish="alert();">
Il plugin raccoglie il riferimento al OnFinish() di callback metodo bene, ma quando si tenta di eseguire qualunque javascript ho messo in là ottengo l'errore:
Uncaught TypeError: Object alert(); has no method 'call'
sto assumendo che è la lettura del alert();
come una stringa. Qualche idea su come posso passare tramite javascript eseguibile al plugin?
Credo che il plug-in che sto utilizzando è un'estensione per il caricamento di file jQuery plugin: https://github.com/blueimp/jQuery-File-Upload/wiki/Options
Aggiornamento: Ho anche provato ad utilizzare funzioni definite a livello globale, in questo modo:
<script type="text/javascript">
function myTesting(){
alert('yay');
}
</script>
<input type="file" name="test" data-on-finish="myTesting">
ho provato a cambiare l'attributo data-on-finish
-myTesting
, myTesting()
, ancora non ha avuto fortuna ...
Hai provato senza il()? – Flash
Ci ha provato, senza fortuna. Ho aggiunto l'aggiornamento sopra. – petehare
Penso che l'eval() farà il lavoro ma può essere pericoloso: http://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea –