如何切换脚本标记的可见性?

cit*_*nas 8 javascript asp.net scripting google-analytics

如何切换a的可见性

<script>
Run Code Online (Sandbox Code Playgroud)

标记中的标记?在我的母版页中有以下javascript代码:

<script  type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
            document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
  try {
   var pageTracker = _gat._getTracker("UA-108xxxx-2");
   pageTracker._trackPageview();
  } catch (err) { }
</script>
</body>
Run Code Online (Sandbox Code Playgroud)

如果我想要的话,服务器端阻止此脚本被阻止的最佳方法是什么(比如在调试模式下运行)

SLa*_*aks 9

把它放在服务器端if块中.

例如:

<% if (!Request.IsLocal) { %>
<script  type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
            document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
  try {
   var pageTracker = _gat._getTracker("UA-108xxxx-2");
   pageTracker._trackPageview();
  } catch (err) { }
</script>
<% } %>
Run Code Online (Sandbox Code Playgroud)


Nic*_*ver 7

试试这个:

<asp:PlaceHolder id="PHScripts" runat="server">
  <script  type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
  </script>
  <script type="text/javascript">
    try {
     var pageTracker = _gat._getTracker("UA-108xxxx-2");
     pageTracker._trackPageview();
    } catch (err) { }
  </script>
</asp:PlaceHolder>
Run Code Online (Sandbox Code Playgroud)

在您的页面中:

PHScripts.Visible = !IsDebugMode;
Run Code Online (Sandbox Code Playgroud)

对于设置,我使用一个名为AppSettings的静态类,并在其余部分旁边有一个简单的属性,以确定它是否是一个调试版本:

public static bool IsDebugMode
{
  get
  {
#if DEBUG
  return true;
#else
  return false;
#endif
  }
}
Run Code Online (Sandbox Code Playgroud)

然后在应用程序中的任

AppSettings.IsDebugMode;
Run Code Online (Sandbox Code Playgroud)