英文原文已於 2012 年 12 月 5 日星期三發佈

不久前,我一位名叫 Bryan 的朋友曾請教我一個很好的問題。他的問題是有關如何建立一個顯示範本,使它能夠如常進行轉譯動作,又可以在轉譯之後執行範本他自己的 Javascript 函數。我的另一個名叫 Jesus 的朋友,在到處打聽消息後,心腸很好地將這個問題的神祕要點分享給我。若要再範本完成轉譯之後呼叫您自己的函數,您需要將下列的指令碼新增至顯示範本的 Javascript 區段中。我的意思是,在 Javascript 中,您必須在頁面中第一個 <div> 標籤的下方,新增將用來轉譯範本的任何其他 JS。在該 Javascript 中,您需要新增圖說文字,如下:

<!--#_
AddPostRenderCallback(ctx, function()
{             
     //要執行的程式碼
});
_#-->

 

就憑這一點,不足以解決 Bryan 的問題。為了能夠進行他想要的額外 CSOM 呼叫,必須取得 ClientContext。事實證明,如果僅是在此委派中嘗試建立它沒有用,因為我們不會在搜尋結果頁面中載入所有的指令碼。所以,為了取得目前的內容,您可以呼叫 Srch.ScriptApplicationManager.get_clientRuntimeContext()。如果您還有其他指令碼需要載入顯示範本,可以使用 EnsureScriptFunc 方法,如下:EnsureScriptFunc("sp.js", "SP.ClientContext", function () { //callback  });

這是翻譯後的部落格文章。英文原文請參閱 Running Client Script in a Display Template After Rendering is Complete in SharePoint 2013