Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Как писать, дебажить JS для FireFox bookmarklet (https://javascript.ru/forum/offtopic/70762-kak-pisat-debazhit-js-dlya-firefox-bookmarklet.html)

DeeZ 01.10.2017 10:18

Как писать, дебажить JS для FireFox bookmarklet
 
Являюсь полный нубом в JS. Стало интересно немного разобраться в JS для FF, и методом тыка был написан простенький bookmarklet:
javascript:(function(){var%20selObj=window.getSelection();location.href='http://2qr.ru/'+selObj;})();


Какнаписать что то сложнее не пойму, тк при ошибках не ясно где именно и что не так. Объясните пожалуйста какие IDE для этих нужд используются, и как вообще пишется подобное? полагаю что механизм должен быть схож с написанием плагинов для FF.

void() 01.10.2017 14:27

По идее у букмарклета тут нет никаких особенностей по сравнению с обычным скриптом. При выполнении букмарклета, он становится частью той страницы, на которой выполняется. Из этого следует, что можно дебажить его как обычный код на какой-либо тестовой странице. А вот чем дебажить... Чаще всего для Мозиллы используют Firebug. Есть на Ютубе уроки для начинающих, как его использовать.

DeeZ 01.10.2017 20:37

Спасибо. Картина начинает вырисовываться :)

Подскажите, какие есть возможности показать уведомлния из JS в FF?
Сейчас сделал такой букмарклет, который показывает перевод выделенного фрагмента через алерт.
javascript:(function(){
var selObj=window.getSelection();
var xhr = new XMLHttpRequest();
var apikey='ключ брать тут https://tech.yandex.ru/translate/';
xhr.open('GET','https://translate.yandex.net/api/v1.5/tr.json/translate?key='+apikey+'&lang=en-ru&text='+selObj+'&format=html',true);
xhr.onload = function() {
  var status = xhr.status;
  if (status == 200) {
    data=JSON.parse(xhr.responseText);
    alert(data.text[0]);
  } else {
    alert(status,xhr.responseText );
  }
};
xhr.send();
})();


Сделал еще через Notification, но данный способ треюбует от каждого сайта разрешения слать уведомлений.

Хочется что то в стиле Notification, но без запроса разрешений.


Часовой пояс GMT +3, время: 04:35.