当前位置: 首页 > news >正文

Blazor入门-调用js+例子

参考:
Blazor入门笔记(3)-C#与JS交互 - 半野 - 博客园
https://www.cnblogs.com/zxyao/p/12638233.html

本地环境:win10, visual studio 2022 community


其他例子写了再更新!

调用js函数并传递参数

首先要加上@inject IJSRuntime JsRuntime,在需要调用的地方写:

var name = "world";
var a = 11;
var b = 22;
var element = await JsRuntime.InvokeAsync<string>("interop.runJs", name, a, b);

其中runJs是函数的名称,后面是参数列表。element将得到返回值。再看runJs:

<script>window.interop = {runJs: (name, a, b) => {console.warn("runJs is executing");console.warn("hello " + name);return "OK " + (a + b);}}
</script>

绘制一个半径可随窗口大小变化的圆形

在这里插入图片描述
在这里插入图片描述

@page "/"@inject IJSRuntime JsRuntime<PageTitle>Index</PageTitle><svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle id="circle" cx="50" cy="50" r="@radius" fill="blue" />
</svg>@code {private double radius = 20;protected override async Task OnAfterRenderAsync(bool firstRender){if (firstRender){await UpdateCircleRadius();}}async Task UpdateCircleRadius(){var element = await JsRuntime.InvokeAsync<IJSObjectReference>("document.getElementById", "circle");var width = await element.InvokeAsync<int>("getBoundingClientRect").ConfigureAwait(false);radius = width / 10;}
}
http://www.lryc.cn/news/345467.html

相关文章:

  • 暴力数据结构之栈与队列(队列详解)
  • 仿照JDK源码写一个ArrayList实现
  • [链表专题]力扣21, 234
  • 智慧便民小程序源码系统 求职招聘+房产出租+相亲交友 带完整的安装代码包以及系统搭建教程
  • 苹果免签封装的优势和安全风险
  • hook抓包trace定位实战
  • SMB 协议详解之-TreeID原理和SMB数据包分析技巧
  • 博士阶段应该搞什么:-人才引进要求
  • 超全MySQL锁机制介绍
  • 【CV】计算机视觉中的特征追踪与背景处理
  • CAPL如何实现TLS握手认证
  • Linux -- 日志
  • WebRtc 视频通话,语音通话实现方案
  • IndyTcpServer使用详解
  • pytest + yaml 框架 - 参数化读取文件路径优化
  • C++:多态-重写和重载
  • element ui的table多选
  • python基础---基础运算
  • 【数学】泰勒公式
  • C++基础-编程练习题及答案
  • eNSP-抓包解析HTTP、FTP、DNS协议
  • 【栈】Leetcode 验证栈序列
  • 【数据库原理及应用】期末复习汇总高校期末真题试卷08
  • 每天五分钟深度学习:数学中的极值
  • 【Linux】Linux——Centos7安装Tomcat
  • SpringBoot+vue实现右侧登录昵称展示
  • 【网络原理】UDP协议 | UDP报文格式 | 校验和 | UDP的特点 | 应用层的自定义格式
  • NodeJs入门知识
  • 代码随想录学习Day 34
  • 由于找不到MSVCP120D.dll,无法继续执行代码。重新安装程序可能会解决此问题