Вот такой вот JavaScript на OnLoad() формы Opprtunities висит:
Код:
var menuAction = window.document.getElementById('mnuaction');
var pointClose = window.document.getElementById('_MIcomplete');
if ((menuAction != null) && (pointClose != null))
{
var menuCode = menuAction.innerHTML;
var pointCode = pointClose.outerHTML;
menuCode = menuCode.substr(0, menuCode.indexOf(pointCode) + 1) + menuCode.substr(menuCode.indexOf(pointCode) + 5 + pointCode.length);
menuAction.innerHTML = menuCode;
}
Идея следующая: на форме есть элементы, которые снабжены айдишниками, а есть такие, которые не снабжены. Конечно же те элементы, которые хочется править айдишниками не снабжены, поэтому их не получить напрямую. Но если посмареть сорцы страничек, то можно опредедлить какой элемент в DOM-Tree имеет айди и наиболее близко расположен к искомому элементу, чтобы через ParentElement добраться до нужного. В случае в пунктом меню Закрыть Сделку всё проще: и сам пункт отмечен и пункт Действия имеет айди. Соответственно я взял innerHTML меню Действия, вычленил из него outerHTML пункта закрытия и присвоил innerHTML обратно. В итоге - пункта меню как не бывало.
Единственный косяк - непойму, почему в операциях со строками у меня взялся какой-то сдвиг в 5 символов, который я компенсировал добавлением числа. Вроде бы по логике неоткуда ему было взяться, но в итоге он у меня появился. Возможно что-то не так с манипуляциями тегов открытия-закрытия в inner-outerHTML. Если кто поймет, что не так с этими пятью символами - дайте знать.