Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.07.2016, 20:14
Интересующийся
Отправить личное сообщение для angelzzz Посмотреть профиль Найти все сообщения от angelzzz
 
Регистрация: 20.12.2011
Сообщений: 29

Нажатие на кнопку срабатывает только в конце массива
Есть код, но он выполняется только в конце выполнения массива, то есть только после того как будут по очереди подставлены все значения:

var websitesArr = [ "ya.ru", "google.com", "ok.ru", "vk.com", "fb.com" ];
  for (var i=0; i<websitesArr.length; i++) {
      $('input[name=url]').val(websitesArr[i]);
      $('input[name=proceed]').trigger('click'); 
  }


Как выполнять код каждый раз, когда вставляется новое значение в input name=url?
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2016, 20:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

angelzzz,
вы что-то не договариваите ...
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">  input[name=proceed]{
    width: 400px;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
$('input[name=proceed]').on("click",function() {
   this.value += " "+$('input[name=url]').val()
})


var websitesArr = [ "ya.ru", "google.com", "ok.ru", "vk.com", "fb.com" ];
  for (var i=0; i<websitesArr.length; i++) {
      $('input[name=url]').val(websitesArr[i]);
      $('input[name=proceed]').trigger('click');
  }

});
  </script>
</head>

<body>
<input type="text" name="url"><input type="text" name="proceed">
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2016, 23:05
Интересующийся
Отправить личное сообщение для angelzzz Посмотреть профиль Найти все сообщения от angelzzz
 
Регистрация: 20.12.2011
Сообщений: 29

ваш код делает что-то не то.

я пытаюсь выполнять свой скрипт на чужом сайте.

Суть скрипта:
1. найти форму с инпутом, взять ее значение
2. найти значение с определенными свойствами
3. добавить их в массив
4. взять значение из другого массива, подставить в форму с инпутом
5. программно нажать кнопку
6. после обновления повторить операции

Что есть на данный момент

var jq = document.createElement('script');
jq.src = "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);

jq.addEventListener('load',function () {
  var result = [];
  var websiteName = $('input[name=url]').val();
  var styleRedEl = $('b[style*="color:red"]').text();
  result[websiteName]=styleRedEl;
  console.log ( result );
  var websitesArr = [ "ya.ru", "google.com", "ok.ru", "vk.com", "fb.com" ];
  for (var i=0; i<websitesArr.length; i++) {
      $('input[name=url]').val(websitesArr[i]);
      //var step =  $('input[name=url]').val();
      //alert (step); //to see result on this step
      $('input[name=proceed]').trigger('click'); // к вопросу 2
  }
});


выполняю это через сниппет google chrome (если есть решения лучше, то буду благодарен за советы).

что не так: сейчас после запуска скрипта по очереди вводятся все данные из массива в инпут и только после этого выполняется нажатие на кнопку (программно) и перезагружается страница.

Последний раз редактировалось angelzzz, 23.07.2016 в 23:07.
Ответить с цитированием
  #4 (permalink)  
Старый 23.07.2016, 23:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Сообщение от angelzzz
ваш код делает что-то не то.
ок
он делает это
Сообщение от angelzzz
Как выполнять код каждый раз, когда вставляется новое значение в input name=url?
а вы по прежнему что-то не договариваите ... думаю что про время для ответа сервера ... для которого цикл for не оставляет времени, хочется синхронно, а оно вон как асинхронно ... это так мысли вслух.
Ответить с цитированием
  #5 (permalink)  
Старый 23.07.2016, 23:35
Интересующийся
Отправить личное сообщение для angelzzz Посмотреть профиль Найти все сообщения от angelzzz
 
Регистрация: 20.12.2011
Сообщений: 29

что тут можно изменить? или как решить проблему?
Ответить с цитированием
  #6 (permalink)  
Старый 23.07.2016, 23:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

angelzzz,
дождаться ответа сервера и продолжить со следующим элементом ...
Ответить с цитированием
  #7 (permalink)  
Старый 24.07.2016, 00:36
Интересующийся
Отправить личное сообщение для angelzzz Посмотреть профиль Найти все сообщения от angelzzz
 
Регистрация: 20.12.2011
Сообщений: 29

Возможно все сделал. Только не могу проверить, после выполнения и обновления страницы 1 раз дальше ничего не происходит. Напомню, что делаю это в сниппете, может через tampermonkey делатЬ? ноя не могу понять как адаптировать код к tampermonkey
Ответить с цитированием
  #8 (permalink)  
Старый 25.07.2016, 09:24
Интересующийся
Отправить личное сообщение для angelzzz Посмотреть профиль Найти все сообщения от angelzzz
 
Регистрация: 20.12.2011
Сообщений: 29

Код все еще не работает. У кого-нибудь есть варианты?
Ответить с цитированием
  #9 (permalink)  
Старый 25.07.2016, 09:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

angelzzz,
если страница перезагружается, то хранить промежуточные результаты в localStorage, подробнее не подскажу
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие по дате в календаре срабатывает только со второго клика afr0 Events/DOM/Window 4 31.10.2012 13:39
Вывод выбранного элемента radio. Срабатывает только во второй раз. Mukhtar Events/DOM/Window 3 09.08.2012 12:19
ajax запрос срабатывает только один раз из цикла.. SunYang AJAX и COMET 3 30.10.2011 16:01
Запуск выполнения PHP при нажатие на кнопку??? Abibas220 Общие вопросы Javascript 1 05.01.2011 12:05
Почему скрипт срабатывает только после обновления страницы? Randomizer jQuery 2 01.09.2010 19:01