AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.09.2013, 14:03   #1  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
GetGlobalContext и ее onselectstart, contextmenu, and ondragstart events
Зашел в тупик
В своем веб-ресурсе подключил GetGlobalContext, а от в свою очередь _common/global.ashx.
Так вот в этой библиотеке есть обработчики событий onselectstart, contextmenu, и ondragstart.
Меня больше всего волнует вот этот onselectstart
Код:
Mscrm.GlobalEvents.$5T=function($p0){var $v_0=$p0.target;if(!$v_0.tagName||typeof $v_0.className!="string")return;var $v_1=$v_0.tagName.toUpperCase();!Mscrm.GlobalEvents.$7E()&&$v_1!=="INPUT"&&$v_1!=="TEXTAREA"&&!($v_1==="DIV"&&Sys.UI.DomElement.containsCssClass($v_0,"ms-crm-Lookup"))&&!Sys.UI.DomElement.containsCssClass($v_0,"ms-crm-Field-Data-Print")&&!Sys.UI.DomElement.containsCssClass($v_0,"ms-crm-Field-Label-Print")&&!Sys.UI.DomElement.containsCssClass($v_0,"ms-crm-Tab-Print")&&!Sys.UI.DomElement.containsCssClass($v_0,"ms-crm-Form-Section-Print")&&!Sys.UI.DomElement.containsCssClass($v_0,"ms-crm-Form-Print")&&$p0.preventDefault()};Mscrm.GlobalEvents.$7E=function(){if(typeof _UI_TEXT_SELECTABLE!="undefined"&&_UI_TEXT_SELECTABLE==="1")return true;return false};
которая подключается так
Код:
Mscrm.GlobalEvents.$$cctor=function(){$addHandler(document,"keypress",Mscrm.GlobalEvents.$3Y);$addHandler(document,"keydown",Mscrm.GlobalEvents.$3Y);$addHandler(document,"selectstart",Mscrm.GlobalEvents.$5T);$addHandler(document,"dragstart",Mscrm.GlobalEvents.$5S);$addHandler(document,"unload",Mscrm.GlobalEvents.$5U);$addHandler(document,"contextmenu",Mscrm.GlobalEvents.$5R)};
и она не дает выделять текст на странице если он не подходит под условия ...

На msdn написано чтобы это отключить надо
Цитата:
The ClientGlobalContext.js.aspx page will include some global event handlers. These event handlers will cancel the onselectstart, contextmenu, and ondragstart events.
И тут начинается мистика document.onselectstart в UR13-14 равен null.
Любое его удаление и переопределение ничего не дает. SelectStart как блокировал выделение так и блокирует.

Как отменить блокировку выделения ?
Старый 10.09.2013, 14:21   #2  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
Порылся еще и нашел что события собраны в document._events
Там есть такое событие как unload, а вот как его вызвать или имитировать хз
На этом событии завешена функция Mscrm.GlobalEvents.$5U которая и отключает события от document
Код:
Mscrm.GlobalEvents.$5U=function($p0){
	$removeHandler(document,"keypress",Mscrm.GlobalEvents.$3Y);
	$removeHandler(document,"keydown",Mscrm.GlobalEvents.$3Y);
	$removeHandler(document,"selectstart",Mscrm.GlobalEvents.$5T);
	$removeHandler(document,"dragstart",Mscrm.GlobalEvents.$5S);
	$removeHandler(document,"unload",Mscrm.GlobalEvents.$5U);
	$removeHandler(document,"contextmenu",Mscrm.GlobalEvents.$5R)
};
Теперь осталось понять как это все заставить работать в разных UR, а то использовать Mscrm.GlobalEvents.$5U() как то не очень.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:55.