2

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

这实际上似乎有效,但是当我在页面上运行调试时,我收到以下警告。

元素“占位符”不是已知元素。如果网站中存在编译错误,或者缺少 web.config 文件,则可能会发生这种情况。

如果我将占位符移动到页面正文中,则会发出警告,但这意味着我在正文中留下了我也想避免的脚本。有没有人对这种情况的最佳实践有任何提示?谢谢

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
4

3 回答 3

3

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

If (some condition is true) Then
   Page.ClientScript.RegisterClientScriptInclude("jQuery", "jquery-version.js")
End If
于 2010-11-01T12:26:03.587 回答
1

满足您需求的几种方法是:

首先,您可以将<head>标签更改为<head id="header" runat="server">then 这允许您动态添加任何内容,例如

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

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

公共 _JS 作为字符串

Page_Load

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

ASPX 页面

<head>
    <script type="text/javascript" src="jquery-version.js"></script>
    <script type="text/javascript">
       $().ready(function(){
          <%=(me._JS) %>
       });
    </script>
</head>
于 2010-11-01T11:02:45.700 回答
0

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

在 ASP.NET 页面
ClientScriptManager 类中包含自定义客户端脚本

于 2010-11-01T12:26:26.753 回答