Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.05.2015, 12:05
Новичок на форуме
Отправить личное сообщение для iopakit Посмотреть профиль Найти все сообщения от iopakit
 
Регистрация: 29.05.2015
Сообщений: 4

Активация скрипта после нажатии на клавишу
Здравствуйте.
Создал скрипт для изминения названия спойлеров в одном сайте.
Вот собственно и код:
var all_toggle_elements=document.getElementsByClassName("toggle");
for(var i=0;i<all_toggle_elements.length;i++){
if(all_toggle_elements[i].tagName.toLowerCase()!="div") continue;
element1 = all_toggle_elements[i].getElementsByClassName("date")[0];
element2 = all_toggle_elements[i].getElementsByClassName("formRow last")[0].getElementsByClassName("oneFour")[0].getElementsByTagName("span")[0];
element3 = all_toggle_elements[i].getElementsByClassName("formRow last")[0].getElementsByClassName("oneFour")[1].getElementsByTagName("span")[0];
element4 = all_toggle_elements[i].getElementsByClassName("formRow last")[1].getElementsByClassName("oneFour")[1].getElementsByTagName("span")[0];
element5 = all_toggle_elements[i].getElementsByClassName("formRow last")[1].getElementsByClassName("oneFour")[2].getElementsByTagName("span")[0];
element6 = all_toggle_elements[i].getElementsByClassName("formRow")[0].getElementsByClassName("oneFour")[0].getElementsByTagName("span")[0];
element7 = all_toggle_elements[i].getElementsByClassName("title closed")[0].getElementsByTagName("h6")[0];
element8 = all_toggle_elements[i].getElementsByClassName("formRow last")[2].getElementsByClassName("oneFour")[2].getElementsByTagName("span")[0];

element1.innerHTML=element8.innerHTML+" "+element2.innerHTML+" дней "+element3.innerHTML+" ("+element4.innerHTML+")-("+element5.innerHTML+") "+element6.innerHTML;
element7.innerHTML="Информация";
}

Мне нужно чтобы этот скрипт активировался не сам, так как как только сайт загружаеться то скрипт работает
А нужно например сидеть на сайте, нажать "Alt+F" и только чтобы тогда скрипт работал. Скажем так чтобы его "активировать".
Ответить с цитированием
  #2 (permalink)  
Старый 29.05.2015, 12:31
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

ищем ответ тут - https://learn.javascript.ru/keyboard-events
Ответить с цитированием
  #3 (permalink)  
Старый 29.05.2015, 15:05
Новичок на форуме
Отправить личное сообщение для iopakit Посмотреть профиль Найти все сообщения от iopakit
 
Регистрация: 29.05.2015
Сообщений: 4

Незнаю в чём дело(
Так оаботает:
function runOnKeys(func) {
        var codes = [].slice.call(arguments, 1);

        var pressed = {};

        document.onkeydown = function(e) {
          e = e || window.event;

          pressed[e.keyCode] = true;

          for (var j = 0; j < codes.length; j++) { // проверить, все ли клавиши нажаты
            if (!pressed[codes[j]]) {
              return;
            }
          }

          // во время показа alert, если посетитель отпустит клавиши - не возникнет keyup
          // при этом JavaScript "пропустит" факт отпускания клавиш, а pressed[keyCode] останется true
          // чтобы избежать "залипания" клавиши -- обнуляем статус всех клавиш, пусть нажимает всё заново
          pressed = {};

          func();

        };

        document.onkeyup = function(e) {
          e = e || window.event;

          delete pressed[e.keyCode];
        };

      }

      runOnKeys(
        function() {
          alert("Привет!")
        },
        "Q".charCodeAt(0)
      );

Но как вместо алерта свой код ставлю то неработает(
Мой код:
function runOnKeys(func) {
        var codes = [].slice.call(arguments, 1);

        var pressed = {};

        document.onkeydown = function(e) {
          e = e || window.event;

          pressed[e.keyCode] = true;

          for (var j = 0; j < codes.length; j++) { // проверить, все ли клавиши нажаты
            if (!pressed[codes[j]]) {
              return;
            }
          }

          // во время показа alert, если посетитель отпустит клавиши - не возникнет keyup
          // при этом JavaScript "пропустит" факт отпускания клавиш, а pressed[keyCode] останется true
          // чтобы избежать "залипания" клавиши -- обнуляем статус всех клавиш, пусть нажимает всё заново
          pressed = {};

          func();

        };

        document.onkeyup = function(e) {
          e = e || window.event;

          delete pressed[e.keyCode];
        };

      }

      runOnKeys(
        var all_toggle_elements=document.getElementsByClassName("toggle");
for(var i=0;i<all_toggle_elements.length;i++){
if(all_toggle_elements[i].tagName.toLowerCase()!="div") continue;
element1 = all_toggle_elements[i].getElementsByClassName("date")[0];
element2 = all_toggle_elements[i].getElementsByClassName("formRow last")[0].getElementsByClassName("oneFour")[0].getElementsByTagName("span")[0];
element3 = all_toggle_elements[i].getElementsByClassName("formRow last")[0].getElementsByClassName("oneFour")[1].getElementsByTagName("span")[0];
element4 = all_toggle_elements[i].getElementsByClassName("formRow last")[1].getElementsByClassName("oneFour")[1].getElementsByTagName("span")[0];
element5 = all_toggle_elements[i].getElementsByClassName("formRow last")[1].getElementsByClassName("oneFour")[2].getElementsByTagName("span")[0];
element6 = all_toggle_elements[i].getElementsByClassName("formRow")[0].getElementsByClassName("oneFour")[0].getElementsByTagName("span")[0];
element7 = all_toggle_elements[i].getElementsByClassName("title closed")[0].getElementsByTagName("h6")[0];
element8 = all_toggle_elements[i].getElementsByClassName("formRow last")[2].getElementsByClassName("oneFour")[2].getElementsByTagName("span")[0];

element1.innerHTML=element8.innerHTML+" "+element2.innerHTML+" дней "+element3.innerHTML+" ("+element4.innerHTML+")-("+element5.innerHTML+") "+element6.innerHTML;
element7.innerHTML="Информация";
},
        "Q".charCodeAt(0)
      );
Ответить с цитированием
  #4 (permalink)  
Старый 29.05.2015, 16:14
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

я не знаю работает ли, но ошибок в консоли нету,
спрятал код потому что длинный)))
function runOnKeys(func) {
  var codes = [].slice.call(arguments, 1);
  var pressed = {};
    document.onkeydown = function(e) {

	  e = e || window.event;

	  pressed[e.keyCode] = true;

	  for (var j = 0; j < codes.length; j++) {
        if (!pressed[codes[j]]) {
          return;
        }
      }
      
	  pressed = {};

      func();

    };
    
	document.onkeyup = function(e) {
	  e = e || window.event;
	  delete pressed[e.keyCode];
	};

}

runOnKeys(
function() {
  var all_toggle_elements=document.getElementsByClassName("toggle");
  for(var i=0;i<all_toggle_elements.length;i++){
    if(all_toggle_elements[i].tagName.toLowerCase()!="div") continue;
      element1 = all_toggle_elements[i].getElementsByClassName("date")[0];
      element2 = all_toggle_elements[i].getElementsByClassName("formRow last")[0].getElementsByClassName("oneFour")[0].getElementsByTagName("span")[0];
      element3 = all_toggle_elements[i].getElementsByClassName("formRow last")[0].getElementsByClassName("oneFour")[1].getElementsByTagName("span")[0];
      element4 = all_toggle_elements[i].getElementsByClassName("formRow last")[1].getElementsByClassName("oneFour")[1].getElementsByTagName("span")[0];
      element5 = all_toggle_elements[i].getElementsByClassName("formRow last")[1].getElementsByClassName("oneFour")[2].getElementsByTagName("span")[0];
      element6 = all_toggle_elements[i].getElementsByClassName("formRow")[0].getElementsByClassName("oneFour")[0].getElementsByTagName("span")[0];
      element7 = all_toggle_elements[i].getElementsByClassName("title closed")[0].getElementsByTagName("h6")[0];
      element8 = all_toggle_elements[i].getElementsByClassName("formRow last")[2].getElementsByClassName("oneFour")[2].getElementsByTagName("span")[0];

      element1.innerHTML=element8.innerHTML+" "+element2.innerHTML+" дней "+element3.innerHTML+" ("+element4.innerHTML+")-("+element5.innerHTML+") "+element6.innerHTML;
      element7.innerHTML="Информация";
  }
},

"Q".charCodeAt(0)
);
Ответить с цитированием
  #5 (permalink)  
Старый 29.05.2015, 19:06
Новичок на форуме
Отправить личное сообщение для iopakit Посмотреть профиль Найти все сообщения от iopakit
 
Регистрация: 29.05.2015
Сообщений: 4

Нероботает(
Может там что-то не так?
Ответить с цитированием
  #6 (permalink)  
Старый 29.05.2015, 19:18
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

Сообщение от iopakit
Нероботает(
Может там что-то не так?
покажите пожалуйста html разметку
Ответить с цитированием
  #7 (permalink)  
Старый 29.05.2015, 19:36
Новичок на форуме
Отправить личное сообщение для iopakit Посмотреть профиль Найти все сообщения от iopakit
 
Регистрация: 29.05.2015
Сообщений: 4

Сообщение от KosBeg Посмотреть сообщение
покажите пожалуйста html разметку
Вот разметка одного из спойлера (я меняю параметр "date")
<div class="toggle">
<div class="title closed">
<img class="titleIcon" src="/images/icons/dark/pencil.png" alt="">
<h6>Информация о займе</h6>
<div class="garant_state">
<img src="/images/garant_stat1.png" alt="">
</div>
<div class="date">#23514012 29/05/2015г.</div>
<a class="detailed-link" href="javascript" data-ofert_borrower="https://webtransfer-finance.com/ru/account/ofert-23514012.pdf" data-borrower_another="https://webtransfer-finance.com/ru/account/application_doc/0/5">
<img class="pdf_image" src="/images/note.png" title="Datailed docs" style="margin-top: 6px;margin-left: 10px;">
</a>
<div class="buttons">
<span>Выставлена</span>
<a class="delete_button" href="https://webtransfer-finance.com/ru/account/delete_invest/23514012" onclick="return yes_no_debit()">
<span>Удалить</span>
</a>
</div>
</div>
<div class="body">
<fieldset style="width:100%" class="blank_info">
<div class="formRow">
<label>Сумма </label>
<div class="formRight">
<span class="oneFour out-summa" style="width:130px;font-size:15px;text-align:center;">$ 50.00<br><span style="font-size:11px">(Заемные)</span> </span>
<span class="oneFour" style="width:130px;font-size:15px;"></span>
<span class="oneFour" style="width:auto;"></span>
</div> 
</div>
<div class="formRow last">
<label>Детали Займа</label>
<div class="formRight biger">
<span class="oneFour" style="width:130px;">
<span>21</span><br>Кол-во Дней </span>
<span class="oneFour" style="width:135px;"><span>1.6%</span><br>Процент в сутки</span>
<span class="oneFour" style="margin-right:0px;width:130px;">
<span>$ 66.80</span>
<br>Сумма возврата</span>
</div>
</div>
<div class="formRow last">
<label>Гарант (вкл) </label>
<div class="formRight biger">
<span class="oneFour" style="width:130px;"><span>$ 16.80</span><br>
</span>
<span class="oneFour" style="width:135px;">
<span>$ 6.72 (-40%)</span><br> отчисление </span>
<span class="oneFour" style="margin-right:0px;width:130px;">
<span>
$ 60.08 </span>
<br>вы получите </span>
</div>
</div>
<div class="drop_down">
<div class="list_applications">
</div>
</div>
</fieldset>
</div>
</div>

Сорри что без спойлера, незнаю как поставить.
Дело в том что сам код работает(без активации на клавишу "Q")
Кидаю два файла, мой код и мой код с клавишей "Q"
Вложения:
Тип файла: zip my-script.zip (2.2 Кб, 1 просмотров)
Ответить с цитированием
  #8 (permalink)  
Старый 29.05.2015, 20:52
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

Задание решено в личной переписке)))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отработка скрипта после изменения DOM. Беляш Общие вопросы Javascript 3 15.10.2010 16:56
Как обнулить переменные после завершения скрипта QRS jQuery 3 07.07.2010 03:08
Запуск скрипта после загрузки страницы vital8 Элементы интерфейса 2 24.09.2009 18:06
Как запустить скрипт после отработки другого скрипта? roman2 Общие вопросы Javascript 2 10.08.2009 01:23
добавить к после отработки скрипта показ модалпопапа roman2 Работа 0 09.08.2009 22:48