[英]Where to place external .js file in aspx page that uses master file
我有一個繼承自母版頁模板的 aspx 頁面。 通常,我會將指向外部 javascript 文件的鏈接放在 html 頁面的 <head <head>
元素內,但<head>
元素位於母版頁中。
我應該在哪里放置對我的 external.js 頁面的引用?
如果我嘗試在<%@ Page %>
元素下方放置一個<script>
標簽,我會收到一些錯誤消息,提示我必須將標簽放在<asp:content>
部分內。
謝謝
在母版頁的<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
被諸如jQuery之類的大型Js庫廣泛使用。
在您的JavaScript中,如果安裝了jQuery,則可以在母版頁中使用$("#nameOfObject")
調用任何具有ClientIDMode="Static"
ASP對象。
我不確定上述過程是否適用於內容頁面,因此該對象可能必須位於母版頁上。
首先,您必須在母版頁的 header 中創建一個占位符,並將腳本添加到頁面上的該占位符。
在母版頁中:-
<head runat="server">
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
在內容頁面(aspx 頁面)中:- 給出 JavaScript 路徑的腳本和來源,如下所示。
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<%-- <b> Trailing Target/Sl</b>--%>
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- Popper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="atjavascript/custom.js"></script>
</asp:Content>
將其放在內容頁面的內容面板之一中
<asp:content runat="server" id="content1" contentplaceholderid="cp1">
<script type="text/javascript" src="somepath"></script>
</asp:content>
在母版頁頁眉中創建一個占位符,並將腳本添加到頁面上的該占位符。
主:
<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>
我假設您希望腳本在子頁面上,而不在母版頁模板中。 在這種情況下,您需要在母版頁的<head>
元素中使用內容占位符。 然后,在子頁面上使用<asp:content>
標記,並在其中放置對外部javascript的引用。 如果您的母版頁的<head>
標簽中已經包含內容占位符,我不會感到驚訝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.