#jquery #asp.net-web-api #jscript
#jquery #asp.net-web-api #jscript
Вопрос:
У нас есть стороннее приложение, которое запускает некоторые события при нажатии текстового поля. Нам не нужны эти события, и поэтому я добавил следующее непосредственно перед закрывающим тегом body — чтобы удалить событие onkeypress.
Я чешу голову, потому что он отлично работает, когда я открываю веб-страницу на своем рабочем столе. Но когда другой пользователь открывает страницу, событие onkeypress все еще запускается. Я не понимаю, почему и как это остановить?
Я добавил оповещение, чтобы узнать, действительно ли скрипт запущен на их стороне, и они получают оповещение. Итак, я озадачен. Есть предложения?
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(window).on('load', function () {
document.getElementById("TheControl_ToTextBox").removeAttribute("onkeypress");
document.getElementById("TheControl_CcTextBox").removeAttribute("onkeypress");
alert("Test Page Load: Ingore This Message");
});
</script>
</body>
</html>
Редактировать ________________________________
Я добавляю HTML-код, который сгенерирован для одного из текстовых полей для справки
<span class="ComposeHeaderValue">
<input name="TheControl$ToTextBox" type="text" readonly="readonly" id="TheControl_ToTextBox" tabindex="1" onkeypress="return TheControl.RY(this, event);" />
</span>
Редактировать ________________________________________
Кроме того, я добавил предупреждение, чтобы указать идентификатор элемента двух текстовых полей. Это успешно работает для всех. Итак, по крайней мере, я знаю, что идентификатор элемента правильный.
Я также загрузил и установил последнюю версию jquery и сослался на локальную версию. Все еще работает при запуске браузера на моем рабочем столе . . и все еще не работает при запуске браузера с любого другого настольного ПК.
<script src="Utils/jquery-3.4.0.js"></script>
У меня совершенно нет идей . . .
Комментарии:
1. Логика удалит только прослушиватели событий, прикрепленные к встроенной привязке. Не те, которые добавлены с помощью jQuery или с
addEventListener
методом2. @taplar — Понял. Есть ли шанс, что вы можете помочь мне понять, почему это на самом деле работает у меня? Когда я запускаю страницу с сервера (не локального), она работает отлично. Onkeypress удален. Когда кто-то другой загружает ту же страницу с того же сервера (не локального) . . . происходит сбой. Я думаю, что для меня это загадка. . Почему это работает, когда я загружаю страницу с сервера на свой рабочий стол?
3. Что вы подразумеваете под «на моем рабочем столе»? Вы оба используете браузер, нет? Я думаю, меня смущает необходимость в этой детали.
4. @taplar — правильно, мы оба используем браузер. Мы оба используем IE 11.09. Когда я запускаю страницу (в браузере IE) со своего рабочего стола, события onkeypress были удалены, как и требовалось. Когда мой коллега запускает ту же страницу (в браузере IE) со своего рабочего стола . . события onkeypress все еще запускаются, чего мы не хотим. Однако появляется предупреждающее сообщение.
5. Вы пробовали проверять элементы в окне, с которыми он не работает? Может возникнуть какая-то проблема с синхронизацией. Создаются ли эти элементы динамически?