我目前正在为SP13构建一个设计解决方案功能。它部署母版页面,布局,CSS文件等。
我的问题是:实际上有任何方法来实现自定义的标准UI图标?例如:对于右上角的色带或设置图标?
如果我可以通过代码(事件接收器)将生成的themedpng覆盖为自定义的(当然是相同的尺寸),那将是完美的。
这里有两种方法,但没有一种是完美的解决方案。
1-备份"C:Program FilesCommon Filesmicrosoft sharedWeb Server Extensions15TEMPLATEIMAGESspcommon.png",并将其替换为您自己的文件。
不建议这样做,因为您不应该触摸SharePoint文件。它可能在安装SharePoint更新时被覆盖。但这是一个简单的解决方案,有时在现实世界中使用。
2-你可以使用jquery(或javascript)替换所有引用"/_layouts/15/images/spcommon.png"由你自己的图像一旦页面加载。您可以在您的站点上部署您的图像。
问题是开箱外的图像将首先显示,然后被您的图像取代。因此,旧图像将在很短的时间内被显示。
这个脚本包含在主页为我做了:
var CustomIcons = function () {
var site_url;
if (_spPageContextInfo.siteServerRelativeUrl === "/") {
site_url = "";
} else {
site_url = _spPageContextInfo.siteServerRelativeUrl;
}
var commom_img_url = site_url + '/_layouts/15/images/spcommon-custom.png';
var commom_img_url2 = site_url + '/_layouts/15/images/spcommon-custom2.png';
var help_img_url = site_url + '/_layouts/15/images/help.png';
var settings_img_url = site_url + '/_layouts/15/images/settings.png';
$('#siteactiontd').find('img:first').attr('src', settings_img_url);
$('#ms-help').find('img:first').attr('src', help_img_url);
$('#ctl00_SyncPromotedAction').find('img:first').attr('src', commom_img_url);
$('#ctl00_fullscreenmodeBtn').find('img:first').attr('src', commom_img_url);
$('a[_action="edit"]').find('img:first').attr('src', commom_img_url);
$('a[_action="save"]').find('img:first').attr('src', commom_img_url2);
}