首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使cookieConsent导航在移动设备上自动扩展?

如何使cookieConsent导航在移动设备上自动扩展?
EN

Stack Overflow用户
提问于 2018-10-25 14:11:09
回答 1查看 194关注 0票数 0

背景

我有一个ASP.Net Corev2.1Web应用程序,它在启动时将CheckConsentNeeded标志设置为true。

代码语言:javascript
复制
services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = Microsoft.AspNetCore.Http.SameSiteMode.None;
        });

我在主页上有一个注册表单,在post操作中使用ValidateAntiForgeryToken。

问题

如果有人试图在cookie被接受之前注册,他们会得到以下错误:

代码语言:javascript
复制
ERROR - ExceptionHandlerMiddleware - An unhandled exception has occurred while executing the request. System.FormatException: Input string was not in a correct format.

需求

我想在手机上自动扩展cookieConsent面板,直到他们接受cookie,使他们更明显地需要这样做,而不是通过手动单击汉堡包图标来查看。

采取行动

我可以看到_cookieConsentPartial中的代码给了我我需要的标志(showBanner):

代码语言:javascript
复制
@{
    var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
    var showBanner = !consentFeature?.CanTrack ?? false;
    var cookieString = consentFeature?.CreateConsentCookie();
}

@if (showBanner)
{

我希望能在这里添加一些JQuery代码,将类" in“添加到..navbar折叠选择器中。

代码语言:javascript
复制
$.when($.ready).then(function () {
        var $navBar = $(".navbar-collapse");
        if (!$navBar.hasClass("in")) {
            $navBar.addClass("in");
        }
    });

然而,有两件事。

  1. 我不能在JQuery中使用cookieConsentPartial,因为该部分的加载高度高于脚本文件。
  2. 如果在页面加载后在控制台中运行JQuery脚本,则会得到菜单而不是cookieConsent内容。汉堡包点击开关也停止工作。

有人能建议在Asp.Net Core2.1中实现这一需求的最佳方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-26 08:52:31

今天早上,我又回到了这个问题上,结果证明,它最终是直接实现的。

我只需要将"in“类添加到_cookieConsentPartial上的导航栏标题下的导航条折叠div中。

代码语言:javascript
复制
<div class="navbar-header">
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#cookieConsent .navbar-collapse">
        <span class="sr-only">Toggle cookie consent banner</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
    </button>
</div>
<div class="collapse **in** navbar-collapse">
    <p class="navbar-text">
        <i class="fa fa-info-circle"></i> We use our cookies and third party cookies to improve our services, obtain statistics, allow you to remember your login details, and to facilitate your interaction with social networks.
    </p>
    ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52991415

复制
相关文章

相似问题

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