Estoy trabajando con una biblioteca de carga de archivos Javascript, y una de sus características es que usa atributos de datos en línea HTML5 para pasar información al complemento.Pasar una función de Javascript a través de los atributos de datos en línea
Esto funciona perfectamente para cualquier cosa relacionada con datos, cadenas, números, etc., sin embargo, el complemento tiene algunos métodos de devolución de llamada a los que puede asignar funciones. Mi problema es que cuando se trata de pasar una función Javascript a través de estos datos de atributos en línea, así:
<input type="file" name="test" data-on-finish="alert();">
El plugin recoge la referencia a la onFinish() de devolución de llamada método bien, pero cuando se trata de ejecutar cualquier javascript puse ahí me sale el error:
Uncaught TypeError: Object alert(); has no method 'call'
estoy asumiendo que es la lectura de la alert();
como una cadena. ¿Alguna idea de cómo puedo pasar javascript ejecutable al plugin?
Creo que el plugin que estoy usando es una extensión para el archivo de carga jQuery plugin: https://github.com/blueimp/jQuery-File-Upload/wiki/Options
Actualización: También he intentado usar funciones definidas a nivel mundial, así:
<script type="text/javascript">
function myTesting(){
alert('yay');
}
</script>
<input type="file" name="test" data-on-finish="myTesting">
he intentado cambiar el atributo data-on-finish
-myTesting
, myTesting()
, todavía no tuvo suerte ...
¿Has probado sin el()? – Flash
Lo intentó, no hubo suerte. He agregado la actualización anterior. – petehare
Creo que el eval() hará el trabajo pero puede ser peligroso: http://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea –