Skip to content

Commit dac75c7

Browse files
committed
renovations
1 parent 5fb0e36 commit dac75c7

18 files changed

Lines changed: 95 additions & 936 deletions

File tree

2-ui/3-event-details/11-onload-onerror/article.md

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,27 @@
2020
var script = document.createElement('script');
2121
script.src = "my.js";
2222

23-
document.documentElement.appendChild(script);
23+
document.body.appendChild(script);
2424
```
2525

26-
...Но, как подгрузки выполнить функцию из этого скрипта? Конечно, можно вызвать её в самом скрипте, но если скрипт -- это универсальная библиотека, то это было бы неправильно.
27-
28-
### script.onload [#onload]
26+
...Но как после подгрузки выполнить функцию, которая объявлена в этом скрипте? Для этого нужно отловить момент окончания загрузки и выполнения тега `<script>`.
2927

30-
Первым нашим помощником станет событие `onload`.
28+
### script.onload
3129

32-
**Событие `onload` сработает, когда скрипт загрузился *и* выполнился.**
30+
Главным помощником станет событие `onload`. Оно сработает, когда скрипт загрузился и выполнился.
3331

3432
Например:
3533

3634
```js
3735
//+ run
3836
var script = document.createElement('script');
39-
script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"
40-
document.documentElement.appendChild(script);
37+
script.src = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.2.0/lodash.js"
38+
document.body.appendChild(script);
4139

4240
*!*
4341
script.onload = function() {
44-
alert(jQuery);
42+
// после выполнения скрипта становится доступна функция _
43+
alert(_); // её код
4544
}
4645
*/!*
4746
```
@@ -50,19 +49,19 @@ script.onload = function() {
5049

5150
...А что, если загрузка скрипта не удалась? Например, такого скрипта на сервере нет (ошибка 404) или сервер "упал" (ошибка 500).
5251

53-
По-хорошему, такое тоже нужно как-то обрабатывать, хотя бы сообщить посетителю о возникшей проблеме.
52+
Такую ситуацию тоже нужно как-то обрабатывать, хотя бы сообщить посетителю о возникшей проблеме.
5453

55-
### script.onerror [#onerror]
54+
### script.onerror
5655

5756
Любые ошибки загрузки (но не выполнения) скрипта отслеживаются обработчиком `onerror`.
5857

59-
Например, для заведомо отсутствующего скрипта:
58+
Например, сделаем запрос заведомо отсутствующего скрипта:
6059

6160
```js
6261
//+ run
6362
var script = document.createElement('script');
64-
script.src = "http://example.com/404.js"
65-
document.documentElement.appendChild(script);
63+
script.src = "https://example.com/404.js"
64+
document.body.appendChild(script);
6665

6766
*!*
6867
script.onerror = function() {

2-ui/3-event-details/8-keyboard-events/article.md

Lines changed: 59 additions & 68 deletions
Large diffs are not rendered by default.

2-ui/3-event-details/8-keyboard-events/keyboard-dump.view/index.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
</head>
77
<body>
88

9-
109
<form id="form" onsubmit="return false">
1110

1211
Предотвратить действие по умолчанию для:<label><input type="checkbox" name="keydownStop" value="1"> keydown</label>&nbsp;&nbsp;&nbsp;<label><input type="checkbox" name="keypressStop" value="1"> keypress</label>&nbsp;&nbsp;&nbsp;<label><input type="checkbox" name="keyupStop" value="1"> keyup</label>
@@ -16,10 +15,11 @@
1615

1716
<p>Сфокусируйтесь на поле и нажмите какую-нибудь клавишу.</p>
1817

19-
<input type="text" placeholder="Поле для тестов" id="kinput">
18+
<input type="text" placeholder="Клавиши нажимать тут" id="kinput">
19+
20+
<textarea id="area"></textarea>
21+
<input type="button" value="Очистить" onclick="area.value = ''"/></form>
2022

21-
<textarea rows="18" id="text"></textarea>
22-
<input type="button" value="Очистить" onclick="text.value = ''"/></form>
2323
</form>
2424
<script src="script.js"></script>
2525

2-ui/3-event-details/8-keyboard-events/keyboard-dump.view/script.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11

22
kinput.onkeydown = kinput.onkeyup = kinput.onkeypress = handle;
33

4+
var lastTime = Date.now();
5+
46
function handle(e) {
57
if (form.elements[e.type + 'Ignore'].checked) return;
68

7-
var evt = e.type
8-
while (evt.length < 10) evt += ' '
9-
text.value += evt +
9+
var text = event.type +
1010
' keyCode=' + e.keyCode +
1111
' which=' + e.which +
1212
' charCode=' + e.charCode +
@@ -15,8 +15,14 @@ function handle(e) {
1515
(e.ctrlKey ? ' +ctrl' : '') +
1616
(e.altKey ? ' +alt' : '') +
1717
(e.metaKey ? ' +meta' : '') + "\n";
18-
19-
18+
19+
if (area.value && Date.now() - lastTime > 250) {
20+
area.value += new Array(81).join('-') + '\n';
21+
}
22+
lastTime = Date.now();
23+
24+
area.value += text;
25+
2026
if (form.elements[e.type + 'Stop'].checked) {
2127
e.preventDefault();
2228
}
Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
1-
form {
2-
border:solid gray 1px;
3-
margin:10px;
4-
padding:10px;
5-
}
61

72
#kinput {
8-
font-size:150%;
9-
width:600px;
3+
font-size: 150%;
4+
width: 600px;
105
}
116

12-
#text {
13-
width:600px;
14-
border:1px solid black;
7+
8+
#area {
9+
width: 600px;
10+
height: 250px;
11+
border: 1px solid black;
1512
display: block;
1613
}
1714

15+
1816
form label {
1917
display: inline;
2018
}

2-ui/3-event-details/9-onscroll/1-avatar-above-scroll/solution.md

Whitespace-only changes.

2-ui/3-event-details/9-onscroll/1-avatar-above-scroll/solution.view/index.html

Lines changed: 0 additions & 109 deletions
This file was deleted.

0 commit comments

Comments
 (0)