I_l*_*ins 5 javascript jquery filereader sweetalert
我有以下代码不起作用.我希望当输入改变时图像出现在swal(Sweet Alert)中,但我不知道什么不起作用.我在控制台上收到以下错误:
Failed to execute'readAsDataURL' on 'FileReader': parameter 1 is not type 'Blob'
INPUT
<input id="input" type="file" style="display:none;" onchange="muda()">
Run Code Online (Sandbox Code Playgroud)
脚本
<script>
function muda(){
var thefile = document.getElementById('input');
var reader = new FileReader();
reader.onloadend = function(){
var imagem = reader.result;
}
if(thefile){
reader.readAsDataURL(thefile);
}
swal({
title: "Esta é a imagem que pretende inserir?",
text: "<img src='"+imagem+"' style='width:150px;'>",
html:true,
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
UPDATE
有了adaneo响应,我设法读取文件名添加.files[0];但我现在不知道如何获取图像路径,我试图放置一个名为image的变量,你可以在代码中看到但它转undefined
您传入的参数thefile是 DOM 元素,而不是文件。
您想要传递文件,而不是整个元素
\n\nvar thefile = document.getElementById(\'input\').files[0];\nRun Code Online (Sandbox Code Playgroud)\n\n选择第一个(也是唯一的,因为它没有“多个”集)文件并将其传递给 FileReader
\n\nreader.onloadend是异步的,你必须将 swal() 函数放在回调中
这是另一种方法,无需内联 javascript
\n\ndocument.getElementById(\'input\').addEventListener(\'change\', function() {\n var thefile = this.files[0];\n var reader = new FileReader();\n reader.onload = function() {\n swal({\n title: "Esta \xc3\xa9 a imagem que pretende inserir?",\n text: "<img src=\'" + reader.result + "\' style=\'width:150px;\'>",\n html: true,\n });\n }\n reader.readAsDataURL(thefile);\n}, false);\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
8138 次 |
| 最近记录: |