Asp.net

如何切換腳本標籤的可見性?

  • April 5, 2017

如何切換a的可見性

<script>

標記中的標記?在我的母版頁中有以下 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>

如果我想要它(比如在調試模式下執行),那麼伺服器端阻止這個腳本被渲染的最佳方法是什麼

將其放在伺服器端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>
<% } %>

嘗試這個:

<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>

在您的頁面中:

PHScripts.Visible = !IsDebugMode;

對於設置,我使用了一個名為 AppSettings 的靜態類,並在其餘部分旁邊有一個像這樣的簡單屬性來確定它是否是調試版本:

public static bool IsDebugMode
{
 get
 {
#if DEBUG
 return true;
#else
 return false;
#endif
 }
}

然後在應用程序的任何地方:

AppSettings.IsDebugMode;

引用自:https://stackoverflow.com/questions/2252968