Показать сообщение отдельно
Старый 19.12.2008, 15:07   #6  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Вот такой вот 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. Если кто поймет, что не так с этими пятью символами - дайте знать.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!