Ich arbeite mit einer Javascript-Datei Upload-Bibliothek, und eine seiner Funktionen ist, dass es HTML5 Inline-Daten-Attribute verwendet, um Informationen an das Plugin zu übergeben.Übergeben einer JavaScript-Funktion durch Inline-Datenattribute
Dies funktioniert gut für alle Daten, Strings, Zahlen usw., aber das Plugin verfügt über einige Callback-Methoden, denen Sie Funktionen zuweisen können. Mein Problem ist, dass, wenn eine Javascript-Funktion durch diese Inline-Daten zu übergeben versucht, Attribute, wie folgt aus:
<input type="file" name="test" data-on-finish="alert();">
Das Plugin nimmt den Verweis auf die OnFinish() Callback-Methode in Ordnung, aber wenn es versucht, was auch immer Sie Javascript auszuführen ich habe dort erhalte ich die Fehlermeldung:
Uncaught TypeError: Object alert(); has no method 'call'
ich nehme an, es ist die alert();
als String zu lesen. Irgendeine Idee, wie ich ausführbares Javascript an das Plugin weitergeben kann?
Ich glaube, das Plugin ich benutze ist eine Erweiterung auf die jQuery-Datei-Upload-Plugin: https://github.com/blueimp/jQuery-File-Upload/wiki/Options
Update: ich auch global definierte Funktionen versucht haben, verwendet wird, wie folgt aus:
<script type="text/javascript">
function myTesting(){
alert('yay');
}
</script>
<input type="file" name="test" data-on-finish="myTesting">
ich habe versucht, das data-on-finish
Attribut myTesting
ändern, myTesting()
, noch kein Glück hatte ...
Haben Sie ohne die() versucht? – Flash
Probieren Sie es aus, kein Glück. Ich habe das obige Update hinzugefügt. – petehare
Ich denke, die Eval() wird den Job machen, aber kann gefährlich sein: http://StackOverflow.com/Questions/86513/Why-ISusing-the-Javascript-eval-Function-A-bad-idea –