javascript - 从 javascript 代码获取数据到 blazor 中的剃刀页面代码
问题描述
您好,我对 JavaScript 和 Blazor 非常陌生,我正在尝试将图片从剪贴板上传到我的网站,该图片将转换为 blob,然后存储在我的数据库中。
我有这个 JavaScript 代码,它负责将图像粘贴到我的剃刀页面中的元素:
(function () {
window.onload = function () {
document.getElementById('txtPaste').focus();
document.getElementById('txtPaste').onpaste = function (event) {
var items = (event.clipboardData || event.originalEvent.clipboardData).items;
console.log(JSON.stringify(items));
var blob = null;
for (var i = 0; i < items.length; i++) {
if (items[i].type.indexOf("image") === 0) {
blob = items[i].getAsFile();
}
}
if (blob !== null) {
var reader = new FileReader();
reader.onload = function (event) {
//console.log(event.target.result);
document.getElementById("imgPaste").src = event.target.result;
document.getElementById("hfByteData").value = event.target.result;
};
reader.readAsDataURL(blob);
}
alert(blob);
}
};
})();
这是它在我的剃须刀页面中的外观:
<textarea id="txtPaste" placeholder="Paste Image Here" style="height: 100px;"></textarea>
<img id="imgPaste" src="" />
<input type="hidden" name="hfByteData" id="hfByteData" runat="server"/>
public Image photo { get; set; }
我正在尝试从图像中检索数据,无论是图像还是 Base64 字符串,并将其放在代码中的变量中。如何让我粘贴的图像显示在Image photo
?
解决方案
Blazor 有一个IJSRuntime
调用 Javascript 函数的接口。可以在官方文档中找到综合指南。
我还没有测试过,但是如果您需要在窗口加载时执行此函数,我认为您应该覆盖 Blazor 中的OnAfterRender
orOnAfterRenderAsync
生命周期方法并使用IJSRuntime
它来调用它。
推荐阅读
- arrays - 将字符串拆分为 datagridvie
- javascript - 为什么包裹在 $document.ready function () 或 $function() 中时找不到我的 javascript 或 jquery 函数
- pygame - 如何使用 pytmx 和 pygame 制作瓷砖碰撞
- django - Django,Dash App 保存数据库凭证最安全的地方
- verilog - 在 Verilog 中,如何将模块的输入接地(本质上是输入 = 0 值)
- c - strcmp 导致 C 中的段错误
- flutter - gridview.builder 不滚动的问题
- python - 1d numpy 数组到矩阵中的块
- javascript - 解构大(嵌套)对象的最佳方法是什么?
- regex - Is there a way to find all occurrences of using var with a require, and replacing just those results with const?