Я добавляю несколько библиотек JS, чтобы владельцы сайтов SharePoint могли добавлять некоторые функции к своим формам и страницам, ссылаясь на различные сценарии в библиотеках активов.У меня есть один сценарий, который позволяет пользователю вставлять заголовки разделов над любым полем в EditForm и NewForm.
Однако это не работает на DispForm.Пользователь помещает ссылку на сценарий в Редакторе сценариев и передает параметры (Заголовок раздела и поле (чтобы вставить заголовок перед). Моя ссылка выглядит следующим образом:
<script type="text/javascript" data-color="" data-sections="Add New UID Anomally-UID" src="../../SiteAssets/js-enterprise/AddSections.js"></script>
Фактический сценарий в SiteAssets:
$(document).ready(function() {
// Get a list of views to turn off the headers
var this_js_script = $('script[src*=AddSections]');
var lists = this_js_script.attr('data-sections');
var str_array = lists.split(',');
var color = this_js_script.attr('data-color');
// over-ride color if there is no value #96c03d
if (typeof color == 'undefined' || color == null || color == ''){
color = "#000000";
}
for(var n = 0; n < str_array.length; n++) {
// Trim the excess whitespace.
str_array[n] = str_array[n].replace(/^\s*/, "").replace(/\s*$/, "");
// Add additional code here, such as:
var str2_array = str_array[n].split('-');
AddSectionBeforeField(str2_array[0],str2_array[1],color);
}
});
function AddSectionBeforeField(sectionText,fieldName,colorcode){
var $fieldTR=$(".ms-standardheader nobr:contains('"+fieldName+"')").closest("tr");
$fieldTR.before("<tr style='background-color:white'><td colspan='2' class='ms-formbody' style='padding:0; color: "+colorcode+";'><div style='font-size:22px;margin-top: 10px;margin-bottom: 10px;font-family: Oswald';'>"+sectionText+"</div></td></tr>");
}
Как я могу заставить это работать для обоих или изменить это, чтобы работать для DispForm?