2009-11-06 151 views
0

我在jQuery中爲一些額外的javascript創建了一個簡單的placeHolder - 問題在於placeHolder在一些腳本標記內,因此無法被Sharepoint設計人員識別。Sharepoint 2007佔位符問題

該頁面正常工作,所以它至今沒有讓我困擾,因爲您無法觸及設計視圖的任何部分,而無需修復問題。

我的代碼看起來像這樣在主模板:

<script type="text/javascript> 
    $(document).ready(function(){ 
    <asp:ContentPlaceHolder id="PlaceHolderjQuery" runat="server" /> 
    }); 
</script> 

有沒有辦法正確地完成這項工作,從而使佔位符實際上是由SharePoint Designer中的認可?

感謝您的幫助!

+0

目前還不清楚我的內容佔位爲什麼的需要在JQuery表達式或javascript標記內 – 2009-11-06 16:48:46

回答

2

我知道你正在嘗試調用PlaceHolder中定義的JavaScript函數。 但是你的代碼不會工作,因爲PlaceHolder是一個服務器控件,並將它作爲其他標籤的子元素不能工作。腳本標記是客戶端處理標記。所以我建議改變邏輯如下。

在母版頁中,我將默認使用JavaScript來調用函數。

<script type="text/javascript> 
    $(document).ready(function(){ 
     myOnLoadFunction(); 
    }); 
</script> 

我將定義一個虛擬函數

<asp:ContentPlaceHolder id="PlaceHolderjQuery" runat="server"> 
<script type="text/javascript>function myOnLoadFunction(){ //do nothing }</script> 
</asp:ContentPlaceHolder> 

現在,在你的內容頁面,您可以定義

<asp:Content ID="javascript" ContentPlaceHolderID="PlaceHolderjQuery" runat="server"> 
<script type="text/javascript>function myOnLoadFunction(){ alert('Hello jQuery'); }</script> 
</asp:Content> 
+0

是的,我之前就是這麼做的 - 我更喜歡另一種方式,因爲它允許一個cle aner看起來在某種程度上。 模板仍然有效,只是Sharepoint設計師拒絕在腳本標記的中間看到有效的PlaceHolderjQuery標記。 感謝您花時間提出備用解決方案。 – TeckniX 2009-11-06 17:49:05

+0

@TeckniX我看到你說的話 – Kusek 2009-11-06 18:19:44

+0

我會記住這爲答案 - 萬一人檢查出的代碼,你錯過了周圍的功能myOnLoadFunction一些標籤再次() 謝謝! – TeckniX 2009-11-09 15:16:04