【问题标题】:Disable <script> in debugger mode [duplicate]在调试器模式下禁用 <script> [重复]
【发布时间】:2019-08-29 00:33:49
【问题描述】:

我是一名 SQL 程序员,多年前曾编写 .NET 桌面应用程序,所以当然,我现在开始维护公司网站。我继承了一个网站,该网站在生产中到处执行像素代码。当我在测试时,我宁愿不执行这些功能,这样我就不会扭曲第 3 方营销部门的跟踪(或者让他们知道我花了多少次才能让我的代码更改生效,让我们说实话...)。有没有办法禁用这个脚本,当我在 IDE 中时说“不”?

我已经在 _layout.cshtml 视图中跟踪了我想要禁用的所有功能。

<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '<PixelID>');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=<PixelID>&ev=PageView&noscript=1"
/></noscript>
<!-- End Facebook Pixel Code -->

如果需要,这里是对该函数的调用之一。

<!-- Facebook ViewContent pixel code col-->
<script>
    fbq('track', 'ViewContent', {
        content_ids: ['@Model.Collection.Sku'],
        content_type: 'product',
        value: @Model.Collection.Price,
        currency: 'USD'
    });
</script>
<!-- End facebook ViewContent pixel code -->

有没有办法说“如果调试 ==-1 {不执行这个}?我会使用什么参数,它会去哪里?

【问题讨论】:

  • 取决于您使用的工具,但最简单的一种:将其注释掉。
  • #if !DEBUG Console.WriteLine("Debug version"); #endif
  • 使用VS 2017。如果我注释掉这个,我必须记得在我推广更改时取消注释。有没有办法说“如果调试== -1 {不执行这个}?我会使用什么参数,代码会去哪里?
  • 将问题更新为(希望)使其更清晰......
  • 玛丽,那段代码会去哪里?我应该用#if 包装 (用函数替换“调试版本”吗?它似乎没有做任何事情。谢谢。

标签: c# asp.net-mvc


【解决方案1】:

(感谢 EdSF 和大家) 我正在寻找的设置是:this.Context.IsDebuggingEnabled

<!-- Facebook Pixel Code -->
<script>
@if (!this.Context.IsDebuggingEnabled)
    {
        <text>
            !function(f,b,e,v,n,t,s)
            {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
            n.callMethod.apply(n,arguments):n.queue.push(arguments)};
            if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
            n.queue=[];t=b.createElement(e);t.async=!0;
            t.src=v;s=b.getElementsByTagName(e)[0];
            s.parentNode.insertBefore(t,s)}(window, document,'script',
            'https://connect.facebook.net/en_US/fbevents.js');
            fbq('init', '<PixelID>');
            fbq('track', 'PageView');
        </text>
    }
</script>
<noscript>
@if (!this.Context.IsDebuggingEnabled)
    {
        <text>
            <img height="1" width="1" style="display:none"
                src="https://www.facebook.com/tr?id=<PixelID>&ev=PageView&noscript=1"/>
        </text>
    }
</noscript>
<!-- End Facebook Pixel Code -->

在本地主机上,我得到: <!-- Facebook Pixel Code --> <script> </script> <noscript> </noscript> <!-- End Facebook Pixel Code -->

而在服务器上,函数就在它们应该在的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 2020-10-05
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多