如何在js代码中,如何获取event

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在js代码中,如何获取event相关的知识,希望对你有一定的参考价值。

event是事件对象,比如你按了某个键(或者单击等,反正能触发事件的),那你在处理时候可能会需要一些信息,比如说是哪个元素被触发的,这个元素也就是你所问的event.srcElement(事件的源对象),通过它可以得到事件的对象,如果你是按键事件如keyup,keydown,那么在event.keyCode会得到这个键的ascii码,如果是鼠标事件,可能还会有当前鼠标的坐标等等,总之,这个对象里面包含了事件发生时的各种数据。 参考技术A event.X event.Y

如何使用 node.js 获取图像上传进度并在我的 iphone 应用程序中使用它

【中文标题】如何使用 node.js 获取图像上传进度并在我的 iphone 应用程序中使用它【英文标题】:How to get the image upload progress using node.js and use it in my iphone app 【发布时间】:2014-02-28 06:27:49 【问题描述】:

我不知道如何使用 node.js 获取当前的上传进度,也不知道如何将进度值发送到我的 iphone 客户端应用程序。我目前有这样的代码,但它只保存图像文件并将图像文件名保存到数据库中。

app.post('/event', function (req, res) 
    fs.readFile(req.files.displayImage.path, function (err, data) 
        var newPath = __dirname + '/uploads/' + req.files.displayImage.name;
        fs.writeFile(newPath, data, function (err) 
            if (!err) 
                var pic = req.files.displayImage.name;
                connection.query('INSERT INTO Event SET ?', pic: pic, function (error, result) 
                    if (error) 
                        res.send(error, 400);
                     else 
                        res.send(insertId: result.insertId, 200);
                    
                );
            
        );
    );
);

【问题讨论】:

这似乎是两个问题:如何返回进度,以及如何使用它。虽然我可以帮助您解决第一个问题,但您可能想为后者打开另一个问题,因为您没有提供任何有关您计划如何使用它的信息。 【参考方案1】:

与 node 中的其他所有内容一样,有一个 node 模块(名为 node-upload-progress)。虽然我没有亲自使用它,但它看起来很坚固。由于您似乎在使用Express,我将在我的示例中执行相同的操作:

首先需要设置uploadHandler:

var app = express();
var uploadHandler = require('node-upload-progress');
uploadHandler.configure(function() 
    return this.uploadDir = "" + __dirname + "/uploads";
);

app.post('/event', function (req, res) 
    return uploadHandler.progress(req, res);
);

看code,貌似这个会返回200状态码,上传数据是json对象。

至于您可以使用它的示例,请查看此html file,我从中发布了以下 sn-p。这个 sn-p 展示了如何使用来自客户端的 ajax 调用定期检查进度状态。

uploadIntervalID = setInterval(function()
      $.get('/progress?X-Progress-ID=' + xProgressID, function(data)
            if(data.status === 'done')
                clearInterval(uploadIntervalID);
            
            updateUploadStatus(data);
      ).error(function()clearInterval(uploadIntervalID));
 , 250);

【讨论】:

感谢您提及此模块。我去看看。

以上是关于如何在js代码中,如何获取event的主要内容,如果未能解决你的问题,请参考以下文章

html,js如何获取当前鼠标位置

js中如何通过单击事件获取当前对象,并传递

如何在js中获取当前textArea有多少行

js如何获取鼠标在某元素移动时~鼠标指针在元素中的坐标?

QT如何获取窗口外的鼠标点击事件,或者鼠标坐标

如何使用 node.js 获取图像上传进度并在我的 iphone 应用程序中使用它