首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Blazor Server _Host.cshtml中运行Javascript

在Blazor Server _Host.cshtml中运行Javascript
EN

Stack Overflow用户
提问于 2020-08-20 07:50:43
回答 1查看 529关注 0票数 0

当页面加载完毕时,我尝试运行一个简单的javascript函数。本质上,代码所做的是获取当前的基本路径名,并找到具有相同id的navlink,并在其上添加一个类。Blazor的<NavLink/>对我来说还不够定制,我宁愿这样做。代码可以工作,但它只出现一小部分秒,然后消失,同时控制台中出现以下内容:

信息:连接到wss://localhost:44346/_blazor?id=IhkBuLdowknNbyGtvWjcVA.的WebSocket

这是我的_Host.cshtml页面:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
       <!--stuff-->
</head>
<body>
    <app>
        <component type="typeof(App)" render-mode="ServerPrerendered" />
        <script>  <!--this is the bit I added-->
            var x = $(location).attr('pathname');
            x.indexOf(1);
            x = x.split("/")[1];
            $('#' + x).addClass('onpage');           
        </script>
    </app>

    <div id="blazor-error-ui">
        <environment include="Staging,Production">
            An error has occurred. This application may no longer respond until reloaded.
        </environment>
        <environment include="Development">
            An unhandled exception has occurred. See browser dev tools for details.
        </environment>
        <a href="" class="reload">Reload</a>
        <a class="dismiss"></a>
    </div>
    <script src="_framework/blazor.server.js"></script>    
</body>
</html>

我对巴兹尔很陌生,所以我不知道是什么引起了这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-20 08:43:20

这是两个部分的答案-第一,回答你的问题,第二,向你展示一个更好的方式,我希望。

你的问题

Blazor在内部跟踪UI --就像影子域,但实际上不是这样--而且它无法跟踪您在JS中所做的更改。

当它呈现Nav时,它不知道您添加了那个css类,因此它被替换为Blazor所知道的css classList。

  1. NavLink

NavLink组件有一个属性调用ActiveClass -您可以设置它,当页面处于活动状态时,它将使用您自己的类名。

代码语言:javascript
复制
<NavLink class="nav-link" href="counter" ActiveClass="onpage">
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63500603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档