>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Перезагрузка при изменении select http://forum.mozilla-russia.org/viewtopic.php?id=73497 |
igorpopkoff > 26-04-2018 13:44:35 |
Делаю дополнение для работы с одном сайтом, в данный момент подключаю JS-файл к сохранённой копии страницы как просто ещё один JS-файл (подключается в самом конце, перед закрытием блока body). Мой код обнаруживает, что необходимо изменить выбор в <select> и размещает на странице кнопку, при нажатии которой должен выполниться код, который и внесёт изменения: (для удобства чтения разбиваю на несколько строк) Но при изменении Select-a браузер просто перезагружает страницу. Я могу успеть заметить, что код вроде бы применяется (блок открывается), но у меня всего мгновение на рассматривание - перезагрузка следует незамедлительно. В консоли ФФ-56 остаётся такой текст: Вроде бы ни одна из этих ошибок не должна была бы привести к перезагрузке страницы. Проверил в Опере - всё работает, перезагрузки не происходит. Может есть идеи, что приводит к перезагрузке? Или как можно обойти этот момент? |
okkamas_knife > 26-04-2018 16:42:47 |
хочешь помощи - изъясняйся внятно не рассчитывая на телепатов. ну и до кучи в твоём варианте насколько я смог понять из невнятного описания иннер хтил юзать дя кнопки не есть хорошо |
igorpopkoff > 26-04-2018 23:31:52 |
okkamas_knife пишет
Ну извините, не думал, что данного описания может оказаться недостаточно. И так старался подробно всё расписать. okkamas_knife пишет
Нет. Иначе и вопроса бы не возникло. Обычный ниспадающий список с обычным интерфейсом и без какой-либо видимой реакции. Разве что по умолчанию он находится в скрытом div и показывается только по необходимости - вот, пожалуй, единственная его "уникальность". okkamas_knife пишет
Нет. Страница загружается из файла заново, код загружается и исполняется заново. Промотка страницы не сохраняется - открывается с самого верха. okkamas_knife пишет
Выделить код Код:<form action="" method="POST" id="forma" ng-controller="VacController as vm" ng-submit="vm.setGeoIfAddressIsNotEmpty($event)"> <select name="ex" onChange="javascript:window.focus();"> <option value="0"></option> <option value="1">0</option> <option value="5">1</option> <option value="2">2</option> <option value="3" selected>3</option> <option value="4">4</option> </select> Но тут нужно сделать тогда уточнение - программа обнаруживает этот селект по name и назначает ему ID, созвучный с name, так что потом обращение идёт через ID: Выделить код Код:var e=document.getElementsByName('ex')[0]; //Это нужный селект alert(e.selectedIndex+' -> '+so);//Проверка, что обнаружено всё верно if (e.selectedIndex!=so) //добавляем кнопку только если нужно сделать изменения { e.id="ex"; //Даём селекту ИД .... //Тут стоит та команда, что приведена в первом посте - добавляет кнопку } Не может же focus() вызывать перезагрузку? Проверить старый селект всё-таки нужно. Я не могу быть уверен, что изменения, предлагаемые программой, действительно нужно будет применять. Это решение нужно будет принять пользователю. А если селект уже выбран правильно, то и не стоит беспокоить пользователя - там и без лишних кнопок будет, чем заняться. |