在所有SharePoint页面上注册一段脚本

时间:2010-05-03 15:47:42

标签: sharepoint wss sharepoint-2007

我有一项业务需求,我需要创建一个SharePoint功能,在所有SharePoint页面中注册JavaScript。

我想出实现它的唯一方法是在激活该功能时在(所有)SharePoint母版页或网站/网站集/ Web应用程序中存在的任何其他自定义母版页中添加脚本。

但我发现编辑母版页以添加Javascript片段是不可行的。

最后我found我可以在“委托控制”中注册我的自定义控件,我创建的自定义用户控件可以在页面中注册我的脚本。

但我的问题是,如果母版页没有委托控件,我该如何处理?

或者是否有其他可能的解决方案在所有SharePoint页面上注册脚本?

3 个答案:

答案 0 :(得分:4)

AdditionalPageHead Delegate Control应位于SharePoint 2007中的每个开箱即用的母版页上。请查看this article。它特别关于jQuery,但它涵盖了有关附加脚本的良好实践。

唯一剩下的母版页将是您的所有自定义母版页,我认为您可以访问它们。现在,我们已经排除了直接将脚本添加到母版页(因为这是一个坏主意),所以应该做的是添加代理控制。以下就足够了。

<SharePoint:DelegateControl runat="server" ControlId="AdditionalPageHead" AllowMultipleControls="true" />

在所有开箱即用的母版页中,这是在最后的部分。这将是将它放入自定义母版页的最佳位置。将代理控制包含在母版页中没有任何不利之处,因此最好在创建新母版页时将其包括在内。

答案 1 :(得分:0)

您可以使用免费的SharePoint Infuser工具来实现此目标。

如果您的母版页没有代理控制权,那么add it如果可能的话。

答案 2 :(得分:0)

您可以将此codeplex代码用于此

http://smarttools.codeplex.com/wikipage?title=jQuery&referringTitle=Home

试试此链接。