我想在上传前显示一个pdf预览。它可以在火狐上运行,但不能在chrome上运行。如果我尝试处理一个图像,它在两个图像上都有效。
下面是我的代码:
<input required="required" accept="image/*, application/pdf" class="uploadjs" data-id="3" type="file">
<div class="preview">
<img id="preview-3" alt="">
<embed id="preview-3_1" type="application/pdf">
</div>
function readURL(input, id)
{
var mime= input.files[0].type;
if (input.files && input.files[0])
{
var reader = new FileReader();
reader.onload = function (e)
{
if(mime.split("/")[0]=="image")
{
$('#preview-'+id+'_1').attr('src', '');
$('#preview-'+id).attr('src', e.target.result);
}
else
{
$('#preview-'+id).attr('src', '');
$('#preview-'+id+'_1').attr('src', e.target.result);
}
}
reader.readAsDataURL(input.files[0]);
}
}
$(function()
{
$(".uploadjs").change(function()
{
var id = $(this).data('id')
readURL(this, id);
});
})和一个jsfiddle:https://jsfiddle.net/g9ttqxyj/2/
我尝试过多种方法,比如: embed、iframe和object,但都不适用于chrome。
发布于 2018-05-18 22:06:11
对于任何偶然发现这一点的人:用object标记封装您的embed标记。object标记的数据属性必须链接到.pdf。将html更改为:
<object type="application/pdf" data ="#" id="pdfViewer">
<embed id="preview-3_1" type="application/pdf">
</object>将此代码添加到jquery中:
$('#pdfViewer').attr('data', e.target.result);https://stackoverflow.com/questions/42440534
复制相似问题