Я унаследовал проект с некоторым неприятным JavaScript, который зависит от жестко закодированных идентификаторов объектов.
т.е. Есть много мест, где он делает вещи, как этотГде ASP.Net получает свои визуализированные идентификаторы?
var magazine = document.getElementById('repModuleDisplay__ctl3_chkCats_0');
Когда страница отображается в моей UAT среды, HTML выглядит следующим образом, и все работает нормально.
<input id="repModuleDisplay__ctl3_chkCats_0"
type="checkbox" name="repModuleDisplay:_ctl3:chkCats:0"
... etc
Однако, когда я положил его на мою среде производства, HTML внезапно разрывая так:
<input id="repModuleDisplay_ctl03_chkCats_0"
type="checkbox" name="repModuleDisplay$ctl03$chkCats$0"
... etc
Разница в идентификаторах означает, что JavaScript не может найти элемент, и не ,
В идеальном мире я бы схожу с ошибкой JavaScript и делаю это правильно, но для быстрого исправления я хотел бы знать, что вызывает разницу между рендерингом между двумя средами.
У кого-нибудь есть идеи?
Спасибо, Нил
Спасибо Luke ... Единственный потенциальный икота - это то, что есть флажки с чекбоксами chkCat, и JavaScript должен срабатывать только при нажатии на один конкретный (я знаю ... я знаю ...). Я отдам его и посмотрю, смогу ли я заставить его работать. – NeilD
@NeilD: Другая возможность (особенно если флажки содержатся в каком-то контейнере, таком как ретранслятор), может заключаться в том, чтобы использовать JavaScript - или, может быть, что-то вроде jQuery - найти соответствующий флажок на стороне клиента во время выполнения. – LukeH