接收到这样的字符串,通过正则匹配到每组方括号然后进行替换
var _str = i.content.replace(/\[.{1,3}\]/g, (str) => { //i.content为遍历出来的消息记录
var index;
Object.keys(faceCode).forEach((key, _index) => { //faceCode为字符串与样式对应的关系,也可以通过参数去和后台约定好,不用这样查找
if (key === str) {
index = _index;
}
});
if (index) {
var html = `<img src="https://wx2.qq.com/zh_CN/htmledition/v2/images/spacer.gif" text="${str}" class="qq-emoji qq-emoji${index}"/>`;
return html;
}
return str;
});
<button id="btn">点我</button>
<div id="div" style="border: 1px solid gray">点我2</div>
<pre class="pre" style="position:absolute;width:800px;height:240px;background-color: #f5f5f5" contenteditable="true">
$(‘#btn‘).click((e) => {
$(‘.pre‘)[0].focus();
});
$(‘#div‘).click((e) => {
$(‘.pre‘)[0].focus();
})
enctype 有三种取值:
当然也可以不用设置enctype为multipart/form-data,即不通过表单生成的数据,而是手动取数据,用FormData合并成一个对象,进行发送
最早的HTTP POST是不支持文件上传的,给编程开发带来很多问题。但是在1995年,ietf出台了rfc1867,也就是《RFC 1867 -Form-based File Upload in HTML》,用以支持文件上传。所以Content-Type的类型扩充了multipart/form-data用以支持向服务器发送二进制数据
<input type="file" id="test" />
var files = document.getElementById("test").files;
for (var i in files) {
if (files[i].type.indexOf(‘image‘) === -1) {
xxx
return;
}
if (files[i].size/(1024*1024) > 1) {
xxx
return;
}
}
$(‘#upload‘)[0].value = "";
var fileReader = new FileReader();
fileReader.onload = (e) => {
document.getElementById(‘picPreview‘).src = e.target.result;
};
var file = document.getElementById(‘#upload‘).files[0];
fileReader.readAsDataURL(file);
function createImg() {
var scale = 0.15,
video = $(‘#video‘)[0],
canvas = document.createElement("canvas"),
canvasFill = canvas.getContext(‘2d‘);
canvas.width = video.videoWidth * scale;
canvas.height = video.videoHeight * scale;
canvasFill.drawImage(video, 0, 0, canvas.width, canvas.height);
return canvas.toDataURL("image/jpeg");
}
$(‘#upload‘)[0].onchange = (e) => {
var windowURL = window.URL || window.webkitURL;
var videoURL = windowURL.createObjectURL(e.target.files[0]);
$(‘#video‘).attr(‘src‘, videoURL);
setTimeout(() => { //一定要加延时,否则图片读取不到
var imgSrc = createImg();
$(‘#img‘).attr(‘src‘, imgSrc);
}, 500)
}