将功能激活时,将脚本引用添加到站点集中的所有页面
-
10-12-2019 - |
题
我想有一个功能,它在激活时为站点集中的所有页面添加脚本引用。
这似乎是一个情况,我应该只修改母版页,但是为了影响网站集中的所有页面,它需要修改每个母版页。
可以获得所有主页页面的列表,以便我可以迭代它们并添加脚本参考?
我有它使用单个主页:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPSite site = properties.Feature.Parent as SPSite;
SPWeb web = site.RootWeb;
string url = web.MasterUrl;
SPFile file = web.GetFileOrFolderObject(url) as SPFile;
/*customize file here*/
}
.
在SharePoint 2010和2013之间存在差异,这将需要不同的解决方案,而不是另一个?
解决方案
我可以在这里看到几个问题: 我没有明白你有这么多的主页如何,肯定(除非你有特定的商业场景),你不应该有很多。在任何一种情况下,都不会修改开箱即用。 2.如果您按“脚本引用”表示某些JavaScript,则存在更简单,更好的方法启动SharePoint 2010,这是创建一个部署自定义操作的新功能,而是使用ScriptLink,例如:
<CustomAction Location="ScriptLink" ScriptSrc="/_layouts/.../your_javascript_file.js" Sequence="100">
.
或者,您也可以做一些如下:
<CustomAction Location="ScriptLink" ScriptBlock="alert('hello');" Sequence="100">
.
以上都不需要以任何方式更改主页页面,并且一旦加载任何页面,脚本将作为生命周期的一部分执行。
其他提示
您描述的是delegateControl的工作原理:http://msdn.microsoft.com/en-us/library/ms463169(v= office.12).aspx
(Marius描述的定制也将工作。)