cropper 不会在模态中加载 img 元素
cropper doesn't load in img element in a modal
我正在使用 fengyuanchen 的裁剪器裁剪上传的图像,然后 post 形成。
<div id="change-dp" uk-modal>
<div class="uk-modal-dialog uk-modal-body">
<button class="uk-modal-close-outside" type="button" uk-close></button>
<h2 class="uk-modal-title">Change Profile Picture</h2><br>
<form action="{{url_for('upload_dp', username=username)}}" method="POST" enctype="multipart/form-data">
<input type="file" accept="image/*" placeholder="Upload profile picture" onchange="loadFile(event)" id="uploaded" required>
<img id="dp" onchange=""/>
<div id="cropped"></div>
<button type="submit">Upload</button>
</form>
</div>
</div>
Javascript
var cropper;
function loadFile(image) {
var dp = document.getElementById('dp')
dp.src = URL.createObjectURL(image.target.files[0]);
dp.onload = function() { URL.revokeObjectURL(dp.src)};
cropper = new Cropper(dp, { aspectRatio: 1 });
};
我的想法是,一旦用户上传图像,它就会用裁剪器渲染,在提交时,我会用 js 将裁剪后的数据生成 div 并将其作为 dp 提交到服务器。我无法显示裁剪器。
我不使用大多数文档所在的 jquery。
您似乎加载了 cropper 脚本不受信任的域站点并且忘记加载 css 文件。这里是官方CDNlink:https://cdnjs.com/libraries/cropperjs
// CSS
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.7/cropper.css" integrity="sha512-AuLN6bHjJzqZ+Iw48+GdQPp5uKBdPX6+zWV37ju9zw7XIrevIX01RsLtpTU/zCoQcKrQRPe/EpwDpZiv7OUYMA==" crossorigin="anonymous" />
// Script
<script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.7/cropper.min.js" integrity="sha512-N4T9zTrqZUWCEhVU2uD0m47ADCWYRfEGNQ+dx/lYdQvOn+5FJZxcyHOY68QKsjTEC7Oa234qhXFhjPGQu6vhqg==" crossorigin="anonymous"></script>
我正在使用 fengyuanchen 的裁剪器裁剪上传的图像,然后 post 形成。
<div id="change-dp" uk-modal>
<div class="uk-modal-dialog uk-modal-body">
<button class="uk-modal-close-outside" type="button" uk-close></button>
<h2 class="uk-modal-title">Change Profile Picture</h2><br>
<form action="{{url_for('upload_dp', username=username)}}" method="POST" enctype="multipart/form-data">
<input type="file" accept="image/*" placeholder="Upload profile picture" onchange="loadFile(event)" id="uploaded" required>
<img id="dp" onchange=""/>
<div id="cropped"></div>
<button type="submit">Upload</button>
</form>
</div>
</div>
Javascript
var cropper;
function loadFile(image) {
var dp = document.getElementById('dp')
dp.src = URL.createObjectURL(image.target.files[0]);
dp.onload = function() { URL.revokeObjectURL(dp.src)};
cropper = new Cropper(dp, { aspectRatio: 1 });
};
我的想法是,一旦用户上传图像,它就会用裁剪器渲染,在提交时,我会用 js 将裁剪后的数据生成 div 并将其作为 dp 提交到服务器。我无法显示裁剪器。
我不使用大多数文档所在的 jquery。
您似乎加载了 cropper 脚本不受信任的域站点并且忘记加载 css 文件。这里是官方CDNlink:https://cdnjs.com/libraries/cropperjs
// CSS
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.7/cropper.css" integrity="sha512-AuLN6bHjJzqZ+Iw48+GdQPp5uKBdPX6+zWV37ju9zw7XIrevIX01RsLtpTU/zCoQcKrQRPe/EpwDpZiv7OUYMA==" crossorigin="anonymous" />
// Script
<script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.7/cropper.min.js" integrity="sha512-N4T9zTrqZUWCEhVU2uD0m47ADCWYRfEGNQ+dx/lYdQvOn+5FJZxcyHOY68QKsjTEC7Oa234qhXFhjPGQu6vhqg==" crossorigin="anonymous"></script>