无法调用 Blazor javascript 方法
Blazor javascript method cannot be called
我正在尝试使用 JSinterop 从我的 Blazor 组件调用 javascript 函数,但我总是收到此错误:
"Uncaught SyntaxError: Unexpected end of input".
另外,javascript 函数在页面完全加载时自动调用,这不是要求的行为,因为我想在单击按钮时触发该函数。
@page "/jsInterop"
@inject IJSRuntime jsRuntime
<h3>JSinterop</h3>
<button type="button" class="btn btn-primary"
onclick="@setLocalStorage()">
Trigger JavaScript Prompt
</button>
@code{
public object setLocalStorage()
{
return jsRuntime.InvokeAsync<object>("interop.setItem", "username",
"Aymen");
}
}
window.interop = {
setItem: function (name, value) {
window.localStorage[name] = value;
return value;
},
};
您的 onclick 事件存在语法错误
onclick="@setLocalStorage()"
应该是
@onclick=“@setLocalStorage”
所有 Blazor 事件现在都需要以 @ 为前缀。
您还需要更改点击处理程序的签名,您应该等待调用。
public async Task setLocalStorage()
{
await jsRuntime.InvokeAsync<object>("interop.setItem", "username",
"Aymen");
}
我正在尝试使用 JSinterop 从我的 Blazor 组件调用 javascript 函数,但我总是收到此错误:
"Uncaught SyntaxError: Unexpected end of input".
另外,javascript 函数在页面完全加载时自动调用,这不是要求的行为,因为我想在单击按钮时触发该函数。
@page "/jsInterop"
@inject IJSRuntime jsRuntime
<h3>JSinterop</h3>
<button type="button" class="btn btn-primary"
onclick="@setLocalStorage()">
Trigger JavaScript Prompt
</button>
@code{
public object setLocalStorage()
{
return jsRuntime.InvokeAsync<object>("interop.setItem", "username",
"Aymen");
}
}
window.interop = {
setItem: function (name, value) {
window.localStorage[name] = value;
return value;
},
};
您的 onclick 事件存在语法错误
onclick="@setLocalStorage()"
应该是
@onclick=“@setLocalStorage”
所有 Blazor 事件现在都需要以 @ 为前缀。
您还需要更改点击处理程序的签名,您应该等待调用。
public async Task setLocalStorage()
{
await jsRuntime.InvokeAsync<object>("interop.setItem", "username",
"Aymen");
}