Tôi đang làm việc với thư viện tải lên tệp Javascript và một trong các tính năng của nó là sử dụng thuộc tính dữ liệu nội tuyến HTML5 để chuyển thông tin cho plugin.Truyền chức năng Javascript thông qua thuộc tính dữ liệu nội tuyến
Điều này hoạt động tốt cho mọi dữ liệu liên quan, chuỗi, số vv, tuy nhiên plugin có một số phương thức gọi lại mà bạn có thể gán chức năng. Vấn đề của tôi là khi cố gắng để vượt qua một hàm javascript thông qua các dữ liệu nội tuyến thuộc tính, như thế này:
<input type="file" name="test" data-on-finish="alert();">
Plugin nhặt tham chiếu đến onFinish() gọi lại phương pháp tốt, nhưng khi nó cố gắng để thực hiện bất cứ điều gì javascript Tôi đặt trong đó tôi nhận được lỗi:
Uncaught TypeError: Object alert(); has no method 'call'
Tôi giả sử nó đang đọc alert();
làm chuỗi. Bất kỳ ý tưởng làm thế nào tôi có thể vượt qua javascript thực thi để các plugin?
Tôi tin rằng các plugin Tôi đang sử dụng là một mở rộng của jQuery tập tin upload plugin: https://github.com/blueimp/jQuery-File-Upload/wiki/Options
Cập nhật: Tôi cũng đã cố gắng sử dụng các chức năng được xác định trên toàn cầu, như thế này:
<script type="text/javascript">
function myTesting(){
alert('yay');
}
</script>
<input type="file" name="test" data-on-finish="myTesting">
Tôi đã thử thay đổi thuộc tính data-on-finish
thành myTesting
, myTesting()
, vẫn không có may mắn ...
Bạn đã thử không có()? – Flash
Hãy dùng thử, không may mắn. Tôi đã thêm bản cập nhật ở trên. – petehare
Tôi nghĩ rằng eval() sẽ thực hiện công việc nhưng có thể nguy hiểm: http://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea –