пишу пользовательский скрипт *.user.js
имеется некоторый сайт на котором есть 2 выпадающих списка
на первый список по событию onchange() происходит ajax запрос при котором генерируется контент второго списка
мне нужно произвести скриптами выбор из первого и второго списка, но сложность в том что во втором списке выбирать нечего (он еще не подгуржен)
я произвел выбор в первом, потом сэмулировал событие onchange() для первого списка, и при этом произошол вызов функций сайта которые и заполнили второй список,
но вот как теперь красиво привязать выбор во втором списке я не знаю,
единственное что у меня получилось это по таймеру (после вызова onchange()) произвести выбор из второго списка (типа даем время подгрузиться второму списку и производим из него выбор) но этот вариант мне не нравится, так как за выделенные 0,5с список может и не подгузиться, а если ставить больше то будет мешать юзеру, хотелось бы отловить завершение запроса (а точнее уже когда будет сформирован второй список) и уже тогда производить выбор
подскажите кто чем может.))
дебажу в хроме, но вообще пишется под мозилу
1. DlTA - 13 Июня, 2011 - 01:53:52 - перейти к сообщению
2. DeepVarvar - 13 Июня, 2011 - 05:53:21 - перейти к сообщению
А у джквери-аякса есть такая штука:
success: function() {.......
Или на чистом жабаскрипте:
if (xhr.readyState == 4 && xhr.status == 200) {.... делаем что надо и только потом спокойно делаем выборку из обоих селектов
success: function() {.......
Или на чистом жабаскрипте:
if (xhr.readyState == 4 && xhr.status == 200) {.... делаем что надо и только потом спокойно делаем выборку из обоих селектов
3. DlTA - 13 Июня, 2011 - 10:18:56 - перейти к сообщению
повторюсь
второй селект еще неимеет списка
он появляется только после того как произойдет выбор из первого
можно конечно скопипастить вызываемые функции в свой скрипт и вызвать по необходимости (почему то пространство имен у юзер скриптов и у страничных разные, и вызвать просто так не получается)
(Добавление)
усе на чистом
этоже пользовательский
второй селект еще неимеет списка
он появляется только после того как произойдет выбор из первого
можно конечно скопипастить вызываемые функции в свой скрипт и вызвать по необходимости (почему то пространство имен у юзер скриптов и у страничных разные, и вызвать просто так не получается)
(Добавление)
усе на чистом
этоже пользовательский
4. DeepVarvar - 13 Июня, 2011 - 13:49:13 - перейти к сообщению
DlTA пишет:
он появляется только после того как произойдет выбор из первого
Повесить обработчик:
CODE (javascript):
скопировать код в буфер обмена
скопировать код в буфер обмена
- var eachOptions = {
- update: function() {
- this.options = document.getElementById("selectid").getElementsByTagName("option");
- for (var l = 0; l < this.options.length; l++) {
- this.options[l].onclick = eachOptions.changehandler;
- }
- },
- changehandler: function() {
- alert(this.value);
- return true;
- }
- }
Когда в DOM придут новые опшны, выполнить: eachOptions.update;
Действия в хендлере поменяй на нужные тебе...