Работаю в IE 8, в основном, но пытаюсь написать переносимое решение для современных браузеров. Использование Telerik Controls.
Я ловлю «Показывающее» клиентское событие RadContextMenu и пытаюсь настроить его координаты. Членам clientX, clientY и x, y события DOM нельзя присвоить новое значение. Visual Studio разрывается с ошибкой «htmlfile: Member not found».
Моя цель - заставить RadContextMenu отображаться внутри RadEditor, когда пользователь щелкает по нему (при определенных условиях это требование со стороны руководства). Поэтому я фиксирую событие onclick для области содержимого RadEditor (radEditor.get_document().body;
). Затем я вызываю show(evt)
в контекстном меню, где «evt» - это объект события, соответствующий событию щелчка.
Поскольку содержимое RadEditor находится в IFRAME, вы должны отрегулировать положение события щелчка, прежде чем отобразится контекстное меню. Это делается в событии «Показ». Тем не менее, я не могу присвоить значение членам .clientX и друзьям. Это как если бы javascript временно забыл об операциях с целыми числами + и + =.
Возможно ли, что эти члены в какой-то момент стали readonly / const?
var evt = args.get_domEvent();
while (node) {
evt.clientX += node.offsetLeft; //'Member not found' here.
evt.clientY += node.offsetTop;
node = node.offsetParent;
}
evt.clientY += sender.get_element().clientHeight;