在ASP.NET中为单个页面加载javascript文件

时间:2009-08-19 12:17:03

标签: asp.net javascript

我正在使用带有包含脚本管理器的母版页的ASP.NET。我想将javascript文件添加到一个页面,但所有页面都从master继承。实现这个目标的正确方法是什么?

提前致谢

5 个答案:

答案 0 :(得分:4)

将脚本管理器代理添加到您要添加javascript的页面,然后使用脚本管理器代理添加javascript引用

答案 1 :(得分:3)

在母版页中,在HEAD部分添加一个内容容器,在页面中将Javascript标记放在该容器的实例中。

编辑 - 为d03boy

在MasterPage上:

<head runat="server">
  <asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>

在ContentPage上:

<asp:Content ID="LocalHeadContent" ContentPlaceHolderID="HeadContent" runat="server">
    <script type="javascript" \>
</asp:Content>

对于任何没有要包含在页眉中的内容页面,甚至不需要创建内容标记。

答案 2 :(得分:1)

您可以使用ClientScriptManager吗?

if (!Page.ClientScript.IsClientScriptIncludeRegistered("MyKey"))
        {
            Page.ClientScript.RegisterClientScriptInclude("MyKey", "~/js/script.js");
        }

答案 3 :(得分:1)

有几种方法可以实现您的目标。

1-在主页的部分中放置内容占位符

<head runat="server">
    <asp:ContentPlaceHolder runat="server" ID="JavascriptPlaceHolder">
    </asp:ContentPlaceHolder>
</head>

并在您要添加javascript文件的特定页面中添加:

<asp:Content ID="Content2" ContentPlaceHolderID="JavascriptPlaceHolder" Runat="Server">
    <script type="text/javascript" src="myfile.js" ></script>
</asp:Content>

2-当您不使用更新面板时,请使用ClientScript:

Page.ClientScript.RegisterClientScriptInclude("MyKey", "/myfile.js");

3-使用更新面板和部分页面呈现时,使用ScriptManager对象注册javascript :(对于onload事件应该可用的脚本,或者至少在更新面板刷新时可用)

string javascript_string = "function myAlert(){ alert('me'); }";
ScriptManager.RegisterStartupScript(this, typeof(string), "MyKey", javascript_string, false);

尽可能使用内容占位符,然后在不能使用时使用其他技术。

答案 4 :(得分:0)