2010-05-19 60 views
1

我有一個JavaScript的負載運行良好,當一切都在一個頁面。現在我已經將它分離出來了,我不知道如何包含JavaScript,將主標籤放在HEAD標籤中,還有,當裝入body時卻運行了函數,但它們也在master中。如何在我的ContentPlaceHolder中運行JavaScript?

順便說一下這是一個.NET 2.0應用程序。

回答

0

masterpage的概念是服務器端,您的瀏覽器將只看到一個頁面的結果,所以你可以把你的JavaScript函數放在你的主人的頭部,並在你的內容頁面調用他們,如果你想或在母版頁的其餘部分。

編輯

你可以把你的母版頁頭部部分內容佔位符,這樣子頁面可以包括,如果你想在頭其特定的腳本...

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script type="text/javascript" src="yourglobaljsfile.js"></script> 

    <asp:ContentPlaceHolder ID="ScriptContent" runat="server" /> 
</head> 
<body> 
    <div style="position: absolute; width: 100%; top: 0px;"> 
    <asp:ContentPlaceHolder ID="OtherPlaceholer" runat="server" /> 
    </div> 
    <script type="text/javascript">yourGlobalfunction();</script> 
</body> 

小時候例如

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<CatalogViewModel>" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> 

    //blabla 
    <script type="text/javascript">yourSpecificfunction();</script> 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="ScriptContent" runat="server"> 
    <script type="text/javascript" src="yourspecificjsfile.js"></script> 
</asp:Content> 
+0

是的,但每頁都需要攜帶相同的腳本。一些腳本應該只能在一個頁面上使用。 – donde 2010-05-19 20:10:40

0

一般來說,你乾脆把普通的JavaScript,不止一個頁面使用到從母版頁和任何一個關功能一個單獨的文件和鏈接到它可以包含其他任何地方使用

<script type="text/javascript"></script> 
2

如果您有腳本特定於某些頁面,並且您使用一個主MasterPage,只需在主頁面的頭部添加一個ContentPlaceHolder即可。

母版:

<head runat="server"> 

    <script type="text/javascript" src="my-site-wide-script.js"></script> 
    <asp:ContentPlaceHolder ID="cphHead" runat="server" /> 
</head> 

內容頁:

<asp:content ID="cHead" runat="server" ContentPlaceHolderID="cphHead"> 
    <script type="text/javascript" src="some-page-specific-script.js"></script> 
</asp:content> 

最終結果提供給瀏覽器(一般):

<head>  
    <script type="text/javascript" src="my-site-wide-script.js"></script> 
    <script type="text/javascript" src="some-page-specific-script.js"></script> 
</head> 

現在任何腳本添加到您的內容頁面會在你的基本腳本之後。爲您提供具有頁面特定腳本的靈活性。

注意:VS2005將發出一個警告/錯誤,ContentPlaceHolder不允許在head標籤內。忽略它,這是VS中的一個錯誤。 VS2008 +不會打擾你。

相關問題