我想有一个功能,它在激活时为站点集中的所有页面添加脚本引用。

这似乎是一个情况,我应该只修改母版页,但是为了影响网站集中的所有页面,它需要修改每个母版页。

可以获得所有主页页面的列表,以便我可以迭代它们并添加脚本参考?

我有它使用单个主页:

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描述的定制也将工作。)

许可以下: CC-BY-SA归因
scroll top