代码之家  ›  专栏  ›  技术社区  ›  Tom

页面头部的asp.net占位符

  •  2
  • Tom  · 技术社区  · 14 年前

    我有一个包含javascript的页面,我只想在特定条件下运行它。为此,我已将脚本放入asp:placeholder中

    这看起来确实有效,但当我在页面上运行调试时,会收到以下警告。

    如果我将占位符移到页面的正文中,则会出现警告,但这意味着正文中还有脚本,我也希望避免这些脚本。有人对这个场景的最佳实践有什么提示吗??谢谢

    Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
    
    dim lt as new Literal()
    lt.text = "<script type='text/javascript' src='scripts/pageLoadAnimations.js'></scr" & "ipt>"
    me.Header.Controls.Add(lt)
    
    End Sub
    
    3 回复  |  直到 14 年前
        1
  •  3
  •   Shadow Wizard    14 年前

    可以直接从代码后面包含JS文件:

    If (some condition is true) Then
       Page.ClientScript.RegisterClientScriptInclude("jQuery", "jquery-version.js")
    End If
    
        2
  •  1
  •   Tim B James    14 年前

    首先,你可以改变你的 <head> 标记到 <head id="header" runat="server"> 然后,这允许您动态地向其中添加任何内容,例如。

    dim lt as new Literal()   
    lt.text = "<script type='text/javascript' src='pathtojavascriptfile'></script>"  
    me.Header.Controls.Add(lt)
    

    或者可以在页面上创建一个公共字符串,然后将javascript插入其中。

    以字符串形式公开

    页面加载

    _JS = "alert('here');" ' Or what ever your javascript is
    

    <head>
        <script type="text/javascript" src="jquery-version.js"></script>
        <script type="text/javascript">
           $().ready(function(){
              <%=(me._JS) %>
           });
        </script>
    </head>
    
        3
  •  0
  •   Joel Etherton    14 年前

    您可以考虑查看ClientScriptManager。这将允许您使用所需的任何条件将脚本正确地注入头中。

    Including Custom Client Script in ASP.NET Pages
    ClientScriptManager Class