我有一个从主页面模板继承的aspx页面。通常,我会将链接放在html页面的<head>
元素内部的外部javascript文件中,但<head>
元素位于母版页中。
我应该将引用放在外部.js页面上?
如果我尝试在<script>
元素下方添加<%@ Page %>
标记,则会收到一些错误消息,说我必须在<asp:content>
个部分中放置标记。
由于
答案 0 :(得分:0)
将其放在内容页面的其中一个内容面板中,例如
<asp:content runat="server" id="content1" contentplaceholderid="cp1">
<script type="text/javascript" src="somepath"></script>
</asp:content>
答案 1 :(得分:0)
在母版页的标题中创建占位符,并将脚本添加到页面上的占位符。
站长:
<head runat="server">
<title>My Appplication</title>
<asp:ContentPlaceHolder ID="HeaderContent" runat="server" />
</head>
页:
<asp:Content ID="PageHeaderContent" ContentPlaceHolderID="HeaderContent" runat="server">
<script type="text/javascript" src="somejsfile.js"></script>
</asp:Content>
答案 2 :(得分:0)
我假设您希望子页面上的脚本,而不是主页面模板中的脚本。在这种情况下,您需要在母版页的<head>
元素中添加内容占位符。然后使用子页面上的<asp:content>
标记,并将引用放在外部javascript中。如果您的母版页在其<head>
代码中已有内容占位符,我不会感到惊讶。
答案 3 :(得分:0)
在您的母版页<body> .. <form> ..
内添加asp:ScriptReference
标记到您的asp:ScriptManager
,不在内容中:
<form id="form1" runat="server">
<asp:ScriptManager ID="scripty" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Scripts/Timer/myJsFile.js"></asp:ScriptReference>
</Scripts>
</asp:ScriptManager>
如果您想从客户端引导它,则需要在页面的<body>
或content
中添加:
<script>
window.onload: start;
</script>
或者,对于需要它的每个页面aspx.cs
,我在服务器端使用它:
Page.ClientScript.RegisterStartupScript(GetType(), "Start", "window.onload=Start;", true);
我的javascript文件中的位置:
function Start() {
...
}
提示:ScriptManager
被大型Js库广泛使用,如jQuery。
在您的javascript中,如果您安装了jQuery,则可以使用ClientIDMode="Static"
在母版页内调用任何具有$("#nameOfObject")
的ASP对象。
如果上述过程适用于内容页面,我不确定,因此该对象可能必须位于母版页上。