我有一个包含javascript的页面,我只想在某些条件下运行。为此,我将脚本放入asp:占位符
这实际上似乎有效,但当我在页面上运行调试时,我收到以下警告。
元素'占位符'不是已知元素。如果网站中存在编译错误,或者缺少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
答案 0 :(得分:3)
您可以直接从代码中包含JS文件:
If (some condition is true) Then
Page.ClientScript.RegisterClientScriptInclude("jQuery", "jquery-version.js")
End If
答案 1 :(得分:1)
符合您需求的几种方式是:
首先,您可以将<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公开为字符串
的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>
答案 2 :(得分:0)
您可以考虑查看ClientScriptManager。这将允许您使用您需要的任何条件正确地将脚本注入标题。
Including Custom Client Script in ASP.NET Pages
ClientScriptManager Class