26 Августа 2020
10

Пособие по запуску JavaScript: консоль, букмарклеты и прочее с примерами

Запускать JavaScript (или JS) код в браузере — обычный навык.

Если когда-то хотели апробировать свой первый JS-код, но боялись, этот пост для вас.


Цель поста для читателей — мочь самостоятельно запускать нужный код.

Цель моя — написать пособие, чтобы на будущее давать на него ссылку + давать готовый код, когда друзьям нужно установить какой букмарклет или мини-форму для какой небольшой автоматизации.


Друзья, которые читают. Если вы это видите, вероятно, вы только что получили код и конкретный пункт из этого пособия. Перечитайте пункт и установите скрипт по аналогии самостоятельно!


ПОМНИТЕ: не устанавливайте JS-код из сомнительных источников и когда не понимаете, что код делает!

§ I. ГДЕ запускать JavaScript код?


Рис. 0.1.

I.1. Через консоль браузера.

Чтобы открыть консоль нужно нажать ctrl+shfit+K или ctrl+shift+L.

Вставляете код, нажимаете enter, он сработает.


Рис. I.1.

I.2. Через адресную строку браузера.

Это строка, где написан адрес сайта.

Стираете адрес сайта, вместо вставляете код, нажимаете enter, он сработает.

Рис. I.2.

I.3. Через bookmarklet, или букмарклет, или «закладурку».

Это закладка браузера, в которой вместо сайта стоит JS-код.

Создаёте любую новую закладку. Затем находите закладку и исправляете её: вместо адреса сайта, который должен открываться, вставьте JS-код и сохраните.

Нажимаете на эту вкладку, срабатывает JS-код.

ПРИМЕЧАНИЕ: это один из удобнейших «многоразовых» способов запускать JS-код, в том числе в браузере смартфона!


Рис. I.3a.

Рис. I.3b.

Рис. I.3c.

I.4. Через обычный блокнот, сохранённый как HTML.

Открываете новый блокнот (notepad).

Вставляете туда нужный HTML с JS.

Нажимаете «Сохранить как», откроется меню. Тип файла — меняете «Текстовые документы (*.txt)» на «Все файлы (*.*)». Имя файла — мойкод.html. Его и открывать в браузере.

ПРИМЕЧАНИЕ: удобный «многоразовый» способ запускать JS-код на компьютере (без Интернета).


Рис. I.4.

СПРАВОЧНО: HTML — это язык гипертекстовой разметки.

Файл расширения .html — это обычный файл в виде текста, прочитав который браузер поймёт, как визуально показать страницу (и внутри .html может храниться JS-код, который может быть запущен).

Любая открытая web-страница в браузере в общем случае — HTML.


Рис. 0.2.

I.5. Через блокнот в браузере (внося изменения в web-страницу).

Преимущества (многоразовое использование и не требуется Интернет), а также подход похожи на [I.4].

Открываете блокнот в браузере в качестве новой вкладки:

data:text/html;charset=utf-8, <html contenteditable>

Затем в консоли находите элементы (HTML-код): открываете консоль (ctrl+shift+K или ctrl+shift+L), переходите в Elements.

Изменяете HTML-код, вставляя туда нужный HTML с JS.

Сохраняете страницу, закрываете её.

После сохранения её и открывать в браузере.

ПРИМЕЧАНИЕ: кстати, сам упомянутый браузерный блокнот удобен для своих заметок, которые можно потом сохранять в специальной папке (ctrl+s).


Рис. I.5a.

Рис. I.5b.

I.6. Через онлайн компилятор/интерпретатор.

Например, один из удобнейших — jsfiddle.net.

Вставляете HTML и JavaScript в соответствующие поля, нажимаете «Save» для сохранения страницы с уникальным адресом (или «Run» для предпросмотра).

Для демонстрации сохранённого можно вставить в конец адреса «/show», будет видна просто страница:

jsfiddle.net/Lz0mtuqx/show

ПРИМЕЧАНИЕ: удобнейший «многоразовый» способ запускать JS-код (когда есть Интернет).


Рис. I.6.

I.7. Через специально установленные расширения (addon) браузера.

Tampermonkey (для Google Chrome) или Greasemonkey (для Firefox).

Вставляете код, сохраняйте. На соответствующих страницах должно работать.

ПРИМЕЧАНИЕ: удобно автоматически запускать JS-код сразу после загрузки (например, на конкретных сайтах с помощью @match).


Рис. I.7.

§ II. ОСНОВНЫЕ ВИДЫ запуска JavaScrpt-кода?

Здесь речь будет идти о простейшем коде, запускающем окошко с текстом.

alert('hi');

В будущем вместо него вам может быть нужно запускать какой-то другой код (но подход, описанный ниже, останется).

II.1. Чистый код.

alert('hi');

Применение: [I.1] консоль.

II.2. Протокол: немедленно вызываемая функция (или IIFE) объявляется и запускается.

javascript:(function(){var func1=function(){alert('hi');};func1();})();

Применение: [I.2] адресная строка браузера;

[I.3] букмарклет.

II.3. Userscript для Tampermonkey / Greasemonkey.

// ==UserScript==
// @name Script Name
// @license CC0; https://creativecommons.org/publicdomain/zero/1.0/deed.ru
// @match http*://*.wikipedia.org/*
// @run-at document-idle
// ==/UserScript==

(function() {
var func1=function(){alert('hi');};
func1();
})();

Применение: [I.7] специальные аддоны Tampermonkey / Greasemonkey.

II.4. Созданный или изменённый файл .html.

Применение: [I.4] файл .html, сохранённый, например, из блокнота;

[I.5] файл .html, сохранённый из отредактированной браузерной страницы;

[I.6] через jsfiddle.

II.4.1. Файл .html, код внутри файла, запуск после загрузки страницы.

<script type="text/javascript">window.onload=function(){var func1=function(){alert('hi');};func1();};</script>
<div id="textDivId1></div>

II.4.2. Файл .html, код по ссылке, запуск после загрузки страницы.

<script type="text/javascript" src="http://codepad.org/AXduOuGF/raw.txt"></script>
<div id="textDivId1></div>

II.4.3. Файл .html, код внутри файла, запуск по кнопке.

<script type="text/javascript">var func1=function(){alert('hi');};</script>
<div id="btnDivId1" style="position: relative; z-index: 99999;">
<button id="btnId1" onclick="javascript:func1();">Click</button>
</div>

II.4.4. Файл .html, код по ссылке, запуск по кнопке.

<script type="text/javascript" src="http://codepad.org/2NJ2YB3V/raw.txt"></script>
<div id="btnDivId1" style="position: relative; z-index: 99999;">
<button id="btnId1" onclick="javascript:func1();">Click</button>
</div>

II.5. Протокол: немедленно вызываемая функция, добавляющая на страницу код и кнопку, с помощью которой его можно запускать.

Применение: [I.4] файл .html, сохранённый, например, из блокнота;

[I.5] файл .html, сохранённый из отредактированной браузерной страницы.

II.5.1. Протокол: немедленно вызываемая функция, добавляющая на страницу код и кнопку, с помощью которой его можно запускать: код на странице.

javascript:(function(){var func1a=function(){

var scr1 = document.createElement('script');
scr1.setAttribute('type','text/javascript');
scr1.textContent="var func1=function(){alert('hi');};";
document.documentElement.getElementsByTagName('*')[0].appendChild(scr1);

var btnDiv1 = document.createElement('div');
btnDiv1.id = 'btnDivId1';
btnDiv1.style.position = 'relative';
btnDiv1.style.zIndex = 99999;
var btn1 = document.createElement('button');
btn1.innerHTML = 'Click';
btn1.id = 'btnId1';
btn1.setAttribute("onclick", "javascript:func1();");

btnDiv1.appendChild(btn1);
document.documentElement.getElementsByTagName('*')[0].insertAdjacentHTML('afterend', btnDiv1.outerHTML);

};func1a();})();

II.5.2. Протокол: немедленно вызываемая функция, добавляющая на страницу код и кнопку, с помощью которой его можно запускать: код по ссылке.

javascript:(function(){var func1a=function(){

var scr1 = document.createElement('script');
scr1.setAttribute('type','text/javascript');
scr1.setAttribute('src','http://codepad.org/2NJ2YB3V/raw.txt');
document.documentElement.getElementsByTagName('*')[0].appendChild(scr1);

var btnDiv1 = document.createElement('div');
btnDiv1.id = 'btnDivId1';
btnDiv1.style.position = 'relative';
btnDiv1.style.zIndex = 99999;
var btn1 = document.createElement('button');
btn1.innerHTML = 'Click';
btn1.id = 'btnId1';
btn1.setAttribute("onclick", "javascript:func1();");

btnDiv1.appendChild(btn1);
document.documentElement.getElementsByTagName('*')[0].insertAdjacentHTML('afterend', btnDiv1.outerHTML);

};func1a();})();

§ III. ОСНОВНЫЕ ТИПЫ запускаемых Javascript-кодов?

III.1. ТЕОРИЯ.

Разумеется, типов множество, но некоторые мы разобрали.

Это:

а) запускаемый сразу;

б) запускаемый после загрузки страницы;

в) запускаемый по кнопке;

г) запускаемый каждые N секунд — изучите самостоятельно!


Первые три вы знаете и видели.

Четвёртый нужно изучить самостоятельно, сделав по аналогии. И, если не выходит, пользуясь поиском в google. Или задавая вопросы на профильных сайтах, например, на stackoverflow или в соответствующих чатах.

III.2. ПРАКТИКА.

Задание-1: чтобы закрепить знания, совет — проверить, «пощупать» каждый кусок кода, который приведён выше и удостовериться, что он работает.



Задание-2: измените КАЖДЫЙ приведённый выше кусок кода и удостоверьтесь, что он работает так, чтобы код запускался каждые 3 секунды.


Как это сделать?

Если обобщить, то измените в каждом куске

alert('hi');

на

setInterval(function(){alert('hi');},3*1000);

Как вы поняли, [II.1] уже сделан. Попробуйте сделать остальные.

Если у вас не получилась практика / иные причины, возможно, «маякните» в комментариях на предмет того, нужны ли «спойлеры» / ответы (хотя это несложно).

§ IV. ДОПОЛНЕНИЕ.

[Доп.советы, чуть более углублённые мелочи]

IV.1. О том, где может храниться JavaScript.

Он может быть как внутри самого файла HTML, так и быть внешним (ссылкой на код).


Во втором случае, то есть для хранения внешних, использовался сайт codepad.org, хотя есть и аналоги [но некоторые аналоги могут на уровне не давать возможность его подгружать в браузер, давая ошибку «CORS»; сейчас неважно, но просто учтите].


Там вставлялся код, выбирался «Plain Text», нажимался «Submit». После сохранения правой кнопкой мыши копировался адрес ссылки «Raw Code». Он-то и является ссылкой (использовалась в [II.4.2], [II.4.4], [II.5.2]).


Рис. IV.1a.

Рис. IV.1b.

На этом достаточно исчерпывающее пособие по запуску JavaScript подходит к концу.

Спасибо за чтение.

Лицензия на текст, код и скрины: CC0.

UPD: ВНИМАНИЕ: В связи с закрытием сайта codepad.org просьба учитывать изменения, описанные в комментарии #comment_199553464

Показать полностью 14
511

Ответ rusruss в «Совпадение или..?»17

Друг работал охранником в психиатрической больнице в Полтаве. При этой больнице имелось подсобное хозяйство, где держали огромных свиней, кг по 200. Так же имелся свой огород 3га.
Так вот, за всем этим ухаживали больные (спокойные,абсолютно нормальные, фиг его знает по какой милости они туда попали, не буйные,буйных держали взаперти ) , с раннего утра их как выгоняли на работу на огород и в свинарники, так они до вечера там и вкалывали.
Держали этот огород и свиней естественно психам на столовую. Свиней там насчитывалось не скажу сколько, не помню из рассказа, но больше 200.
Когда был очередной забой, делилось мясо. Главврачу, заму, старшей мед., директору подсобного и его заму. Короче больным в столовую уезжала одна свинная голова.
Как можно так поступать с людьми у которых и так искалеченны жизни и судьбы? Я не знаю какими людьми надо быть.

107

Ну я тоже расскажу своё "Фууу..."1

А если быть точной не "Фууу", а "а ты че дура?"
Собственно про поступление... Подавляющая часть моего семейства-люди технические, да и я со школьной скамьи обожала черчение и была довольно сильна в точных науках... Поэтому по окончании 9го класса, родители случайно узнали, что при одном из ведущих вузов региона открыли строительный колледж и предложили мне туда поступить. Уже через 2 дня документы были поданы, ведь я ни капли не сомневалась в том, что это моё и это престижно... Ну да, ну да... Закончив колледж, поступила на вышку. Инженер городского строительства и хозяйства, звучало для меня как лучшая песня... Диплом иииии... И никому ты нахрен не нужна. В одном месте брали секретарём, но смысл? Имея за плечами хорошее образование, я считала это задворками плинтуса... В других местах с молодой девочкой даже и собеседование отказывались проводить, мол в декрет уйдёт, что потом делать... В итоге свела меня не лёгкая с авиацией. Инженер отдела геометрической информации, ну тоже не плохо, внушала я себе. Но все 6 лет я люто ненавидела свою работу. И не из-за работы, а из-за людей, бюрократии, лохматых лап и т.д. В итоге по прошествии этих 6 лет я делаю заявление перед всей семьёй, что с меня хватит и я увольняюсь. Меня не поддерживал никто. Все говорили что меняю престижную работу на "чёпопало", чё попало было 3d-визуализатор.
Все ккак один, кроме мужа, говорили что тебе уже 26,какие перемены, детей пора заводить а не работу менять и т. д.
В иитоге прошёл год. За это время я не только сменила нелюбимую работу на любимую, но и переехала в другой о конец страны. Сейчас все родные говорят, какая я молодец что рискнула. Каким правильным решением было увольнение. А всё потому что наш авиационный завод разваливают эффективные московские менеджеры. Но это другая история.
В ообщем выводов 2.
1. Если вы понимаете что занимает не своё место, меняйте его, не слушайте никого. Ставте себе цель. И лучше делать не на зло, а вопреки. Вопреки всем упрёкам, недоверию и не пониманию. Вы вольны решать, это ваша жизнь и пусть остальные смеряются с вашим выбором, а не вы с чужими ожиданиями.
2. Эффективные менеджеры дно(те, кого я знаю, дабы никого не обидеть)
Я не писатель, я визуализатор, за ошибки не пинайте.
Всем добра 😘

Показать полностью
32

Про флешбеки и тату на бедре

Я так однажды у гинеколога лифчик сняла.

Не спрашивайте, пожалуйста,  зачем я разделась полностью.  Я. НЕ. ЗНАЮ.

Доктор отвернулся сделать запись, поворачивается... а там...

Ляя, этот взгляд.

Стыдно до сих пор. Стыдно и смешно.

13

Любовь и кошки

В нашей дружной коммуналке обитали три семьи и целый зоопарк питомцев.
У первых соседей была склочная, но веселая болонка Тошка, а у вторых соседей и у нас жила целая династия сиамских котов.
Муся, Дуся, Люся и альфа-самец Кеша. Мусю и Дусю он постольку поскольку, а с Люсей у них была любовь.
Самое неожиданное подтверждение этому я получил, сидя на коммунальном унитазе и почитывая ~Юный натуралист~ Науку и жизнь.
В нижнем углу двери туалета была сделана квадратная дыра, чтобы кошки тоже могли удовлетворять свои естественные надобности.
Возле унитаза, с обеих сторон, стояли два лотка, наш и соседский. Раньше специальных кошачьих унитазов не было, и вместо них использовали ванночки для проявки фотографий.
Как кошки различали лотки, я не знаю, но каждая семья ходила на свой. Мы с батей ездили куда-то на завод за наполнителем, и наши питомцы комфортно сидели на душистых сосновых опилках.
Соседи довольствовались мелко порванными газетами.
Так вот, сижу я, почитываю новости современной науки, и тут в кошачью дверцу просовывается голова Кеши, и смотрит на меня удивленными круглыми глазами.
Я не придал этому значения. В процессе сидения у меня были глаза примерно такой же окружности.
Кеша исчезает, просовывается морда Люси. В ее прекрасных голубых глазах я прочитал даже некое разочарование.
Затем парочка по очереди протискивается и садится каждый на свое место.
Я почувствовал себя прямо каким-то Клеопатром. Сижу на троне, меня окружают сиамские кошки, у нас общее дело.
Но про любовь же. Когда я убирал за Кешей, я увидел, что он выложил свою какаху в виде правильного сердечка.

Показать полностью
Мои подписки
Подписывайтесь на интересные вам теги, сообщества, авторов, волны постов — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.

Отличная работа, все прочитано! Выберите