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;
    }
}

相关推荐

  1. Duilib初级入门例子

    2024-05-11 18:54:06       46 阅读
  2. uniapp request.js封装例子

    2024-05-11 18:54:06       51 阅读
  3. python-调用js代码

    2024-05-11 18:54:06       33 阅读
  4. js实例继承的例子和优缺点

    2024-05-11 18:54:06       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 18:54:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 18:54:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 18:54:06       82 阅读
  4. Python语言-面向对象

    2024-05-11 18:54:06       91 阅读

热门阅读

  1. 蒙特卡洛求PI(抛点法)TypeScript实现

    2024-05-11 18:54:06       31 阅读
  2. 第十周笔记

    2024-05-11 18:54:06       34 阅读
  3. WHAT - npm和npx

    2024-05-11 18:54:06       30 阅读
  4. 【LeetCode】每日一题:2960. 统计已测试设备

    2024-05-11 18:54:06       30 阅读
  5. 若依ruoyi-vue前端异常处理

    2024-05-11 18:54:06       31 阅读
  6. Rust - 终端输入、文件读写

    2024-05-11 18:54:06       33 阅读
  7. 【C++】n个一位数能够组成的最大数

    2024-05-11 18:54:06       26 阅读