diff --git a/1-js/2-first-steps/2-external-script/article.md b/1-js/2-first-steps/2-external-script/article.md index 9a3567ed..ea91445e 100644 --- a/1-js/2-first-steps/2-external-script/article.md +++ b/1-js/2-first-steps/2-external-script/article.md @@ -165,12 +165,18 @@ При запуске вы увидите, что вся страница отобразилась тут же, а `alert` из внешнего скрипта появится позже, когда загрузится скрипт. -**Большинство современных системы рекламы и счётчиков знают про эти атрибуты и используют их.** +[smart header="Эти атрибуты давно \"в ходу\""] +Большинство современных системы рекламы и счётчиков знают про эти атрибуты и используют их. + +Перед вставкой внешнего тега `` +
  • Специальные атрибуты `async` и `defer` используются для того, чтобы пока грузится внешний скрипт -- браузер показал остальную (следующую за ним) часть страницы. Без них этого не происходит.
  • +
  • Разница между `async` и `defer`: атрибут `defer` сохраняет относительную последовательность скриптов, а `async` -- нет.
  • Очень важно не только читать учебник, но делать что-то самостоятельно. diff --git a/1-js/4-data-structures/7-array/array-pop.svg b/1-js/4-data-structures/7-array/array-pop.svg index 6f976692..bc0a864c 100644 --- a/1-js/4-data-structures/7-array/array-pop.svg +++ b/1-js/4-data-structures/7-array/array-pop.svg @@ -6,19 +6,19 @@ - - + + 0 1 - + 2 - + 3 @@ -41,15 +41,15 @@ очистить - - + + 0 1 - + 2 diff --git a/1-js/4-data-structures/7-array/array-shift.svg b/1-js/4-data-structures/7-array/array-shift.svg index ee1cf8d4..a8584338 100644 --- a/1-js/4-data-structures/7-array/array-shift.svg +++ b/1-js/4-data-structures/7-array/array-shift.svg @@ -9,11 +9,11 @@ 1 - + 2 - + 3 @@ -29,19 +29,19 @@ length = 4 - - + + 0 1 - + 2 - + 3 @@ -67,8 +67,8 @@ элементы влево - - + + 0 @@ -76,15 +76,15 @@ "Яблоко" - - + + 0 1 - + 2 diff --git a/1-js/4-data-structures/7-array/array-speed.svg b/1-js/4-data-structures/7-array/array-speed.svg index c4e300aa..227243c6 100644 --- a/1-js/4-data-structures/7-array/array-speed.svg +++ b/1-js/4-data-structures/7-array/array-speed.svg @@ -6,39 +6,39 @@ - - + + 0 1 - + 2 - + 3 - + pop - + unshift - + push - + shift diff --git a/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list.svg b/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list.svg index 0df9bcdf..f9f34c9a 100644 --- a/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list.svg +++ b/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list.svg @@ -6,7 +6,7 @@ - + value @@ -18,7 +18,7 @@ next - + value @@ -30,7 +30,7 @@ next - + value @@ -42,7 +42,7 @@ next - + value diff --git a/1-js/4-data-structures/9-array-iteration/reduce.svg b/1-js/4-data-structures/9-array-iteration/reduce.svg index 7cb12bc8..4df74524 100644 --- a/1-js/4-data-structures/9-array-iteration/reduce.svg +++ b/1-js/4-data-structures/9-array-iteration/reduce.svg @@ -6,7 +6,7 @@ - + 1 @@ -16,7 +16,7 @@ current 1 - + 2 @@ -26,7 +26,7 @@ current 2 - + 3 @@ -36,7 +36,7 @@ current 3 - + 4 @@ -46,7 +46,7 @@ current 4 - + 5 diff --git a/1-js/5-functions-closures/6-memory-management/family-no-family.svg b/1-js/5-functions-closures/6-memory-management/family-no-family.svg index e1d51b9e..13e087e2 100644 --- a/1-js/5-functions-closures/6-memory-management/family-no-family.svg +++ b/1-js/5-functions-closures/6-memory-management/family-no-family.svg @@ -8,7 +8,7 @@ - + window diff --git a/1-js/5-functions-closures/6-memory-management/family-no-father-2.svg b/1-js/5-functions-closures/6-memory-management/family-no-father-2.svg index 66eac6ef..a6252c0f 100644 --- a/1-js/5-functions-closures/6-memory-management/family-no-father-2.svg +++ b/1-js/5-functions-closures/6-memory-management/family-no-father-2.svg @@ -6,7 +6,7 @@ - + window diff --git a/1-js/5-functions-closures/6-memory-management/family-no-father.svg b/1-js/5-functions-closures/6-memory-management/family-no-father.svg index 837095ec..5a39c3a8 100644 --- a/1-js/5-functions-closures/6-memory-management/family-no-father.svg +++ b/1-js/5-functions-closures/6-memory-management/family-no-father.svg @@ -6,7 +6,7 @@ - + window diff --git a/1-js/5-functions-closures/6-memory-management/family.svg b/1-js/5-functions-closures/6-memory-management/family.svg index 3cfc4826..4a20f22a 100644 --- a/1-js/5-functions-closures/6-memory-management/family.svg +++ b/1-js/5-functions-closures/6-memory-management/family.svg @@ -8,7 +8,7 @@ - + window diff --git a/1-js/9-prototypes/1-prototype/proto-animal-rabbit.svg b/1-js/9-prototypes/1-prototype/proto-animal-rabbit.svg index ffa9ebfd..9c368811 100644 --- a/1-js/9-prototypes/1-prototype/proto-animal-rabbit.svg +++ b/1-js/9-prototypes/1-prototype/proto-animal-rabbit.svg @@ -6,14 +6,14 @@ - + eats: true animal - + jumps: true diff --git a/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring.svg b/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring.svg index dd508be6..e3dbff29 100644 --- a/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring.svg +++ b/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring.svg @@ -6,7 +6,7 @@ - + toString: function ... @@ -14,7 +14,7 @@ Array.prototype - + toString: function ... @@ -22,7 +22,7 @@ Object.prototype - + diff --git a/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes.svg b/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes.svg index d2a97150..9d40129b 100644 --- a/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes.svg +++ b/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes.svg @@ -6,7 +6,7 @@ - + toString: function другие методы объектов @@ -24,7 +24,7 @@ null - + slice: function другие методы массивов @@ -35,7 +35,7 @@ Array.prototype - + __proto__ @@ -46,7 +46,7 @@ Function.prototype - + toFixed: function другие методы чисел @@ -61,17 +61,17 @@ - + [1, 2, 3] - + function f(args) { ... } - + 5 diff --git a/1-js/9-prototypes/3-native-prototypes/native-prototypes-object.svg b/1-js/9-prototypes/3-native-prototypes/native-prototypes-object.svg index 2cab5839..f7fb8153 100644 --- a/1-js/9-prototypes/3-native-prototypes/native-prototypes-object.svg +++ b/1-js/9-prototypes/3-native-prototypes/native-prototypes-object.svg @@ -6,7 +6,7 @@ - + toString: function другие методы объектов @@ -14,7 +14,7 @@ Object.prototype - + obj diff --git a/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object.svg b/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object.svg index 4ceb549c..3b4b5230 100644 --- a/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object.svg +++ b/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object.svg @@ -6,7 +6,7 @@ - + slice: function ... @@ -17,7 +17,7 @@ arr - + hasOwnProperty: function ... @@ -25,7 +25,7 @@ Object.prototype - + diff --git a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal.svg b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal.svg index f7b19ce7..a7264911 100644 --- a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal.svg +++ b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal.svg @@ -6,7 +6,7 @@ - + jump: function @@ -16,7 +16,7 @@ rabbit - + run: function stop: function @@ -24,7 +24,7 @@ Animal.prototype - + diff --git a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.svg b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.svg index ed73c590..a40ab833 100644 --- a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.svg +++ b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.svg @@ -6,7 +6,7 @@ - + jump: function @@ -18,7 +18,7 @@ rabbit - + run: function stop: function @@ -26,7 +26,7 @@ Animal.prototype - + diff --git a/11-regular-expressions-javascript/12-regexp-alternation/1-find-programming-language/solution.md b/11-regular-expressions-javascript/12-regexp-alternation/1-find-programming-language/solution.md index b02bec16..483f818e 100644 --- a/11-regular-expressions-javascript/12-regexp-alternation/1-find-programming-language/solution.md +++ b/11-regular-expressions-javascript/12-regexp-alternation/1-find-programming-language/solution.md @@ -15,7 +15,7 @@ alert( str.match(reg) ); // Java,Java,PHP,C,C Естественно, при этом JavaScript не будет найдено никогда. -То же самое -- с C и C++. +То же самое -- с языками C и C++. Есть два решения проблемы: diff --git a/11-regular-expressions-javascript/12-regexp-alternation/2-match-quoted-string/solution.md b/11-regular-expressions-javascript/12-regexp-alternation/2-match-quoted-string/solution.md index 5ff6e4fd..c959b6fa 100644 --- a/11-regular-expressions-javascript/12-regexp-alternation/2-match-quoted-string/solution.md +++ b/11-regular-expressions-javascript/12-regexp-alternation/2-match-quoted-string/solution.md @@ -13,7 +13,7 @@ ```js //+ run var re = /"(\\.|[^"\\])*"/g; -var str = '.. "test me" .. "Скажи \\"Привет\\"!" .. "\\r\\n" ..'; +var str = '.. "test me" .. "Скажи \\"Привет\\"!" .. "\\r\\n\\\\" ..'; -alert( str.match(re) ); // "test me","Скажи \"Привет\"!","\r\n" +alert( str.match(re) ); // "test me","Скажи \"Привет\"!","\r\n\\" ``` \ No newline at end of file diff --git a/11-regular-expressions-javascript/12-regexp-alternation/2-match-quoted-string/task.md b/11-regular-expressions-javascript/12-regexp-alternation/2-match-quoted-string/task.md index 33c4a94e..4db27891 100644 --- a/11-regular-expressions-javascript/12-regexp-alternation/2-match-quoted-string/task.md +++ b/11-regular-expressions-javascript/12-regexp-alternation/2-match-quoted-string/task.md @@ -1,27 +1,26 @@ # Найдите строки в кавычках -Найдите при помощи регэкспа строки в двойных кавычках "...". +Найдите в тексте при помощи регэкспа строки в двойных кавычках "...". -В строке *могут* быть любые символы, включая вложенные кавычки, заэкранированные слэшем, то есть: \", \n. Слэш удваивается, чтобы вставить его как символ: \\. +В строке поддерживается экранирование при помощи слеша -- примерно в таком же виде, как в обычных строках JavaScript. То есть, строка может содержать любые символы, экранированные слэшем, в частности: \", \n, и даже сам слэш в экранированном виде: \\. -Иначе говоря, синтаксис строки -- примерно соответствует используемому в JavaScript. Нужно такие строки найти. +Здесь особо важно, что двойная кавычка после слэша не оканчивает строку, а считается её частью. В этом и состоит основная сложность задачи, которая без этого условия была бы элементарной. Пример совпадающих строк: ```js -var str = ' .. *!*"test me"*/!* .. '; - -var str = ' .. *!*"Скажи \\"Привет\\"!"*/!* ... '; - -var str = ' .. *!*"\\r\\n"*/!* .. '; +.. *!*"test me"*/!* .. (обычная строка) +.. *!*"Скажи \"Привет\"!"*/!* ... (строка с кавычками внутри) +.. *!*"\r\n\\"*/!* .. (строка со спец. символами и слэшем внутри) ``` -Слэши в этих строках удвоены по технической причине -- в JavaScript кавычки `'...'` считают слэш специальным символом и требуют его экранировать. +Заметим, что в JavaScript такие строки удобнее всего задавать в одинарных кавычках, и слеши придётся удвоить (в одинарных кавычках они являются экранирующими символами): -Так что на самом деле, к примеру, в такой строке одинарные слэши: +Пример задания тестовой строки в JavaScript: ```js //+ run -var str = ' .. *!*"Скажи \\"Привет\\"!"*/!* ... '; +var str = ' .. "test me" .. "Скажи \\"Привет\\"!" .. "\\r\\n\\\\" .. '; -alert(str); // .. "Скажи \"Привет\" ... +// эта строка будет такой: +alert(str); // .. "test me" .. "Скажи \"Привет\"!" .. "\r\n\\" .. ``` diff --git a/11-regular-expressions-javascript/13-regexp-ahchors/1-start-end/solution.md b/11-regular-expressions-javascript/13-regexp-ahchors/1-start-end/solution.md new file mode 100644 index 00000000..e5118b47 --- /dev/null +++ b/11-regular-expressions-javascript/13-regexp-ahchors/1-start-end/solution.md @@ -0,0 +1,6 @@ + +Нам нужна строка, которая начинается -- и тут же кончается. То есть, пустая. + +Или, если быть ближе к механике регэкспов, то движок сначала будет искать в тексте начальную позицию ``pattern`^`, а как только найдёт её -- будет ожидать конечной ``pattern`$`. + +Заметим, что и ``pattern`^` и ``pattern`$` не требуют наличия символов. Это -- проверки. В пустой строке движок сначала проверит первую, а потом -- вторую -- и зафиксирует совпадение. \ No newline at end of file diff --git a/11-regular-expressions-javascript/13-regexp-ahchors/1-start-end/task.md b/11-regular-expressions-javascript/13-regexp-ahchors/1-start-end/task.md new file mode 100644 index 00000000..f5df587e --- /dev/null +++ b/11-regular-expressions-javascript/13-regexp-ahchors/1-start-end/task.md @@ -0,0 +1,4 @@ +# Регэксп ^$ + +Предложите строку, которая подойдёт под регулярное выражение ``pattern`^$`. + diff --git a/11-regular-expressions-javascript/13-regexp-ahchors-and-multiline-mode/article.md b/11-regular-expressions-javascript/13-regexp-ahchors/article.md similarity index 97% rename from 11-regular-expressions-javascript/13-regexp-ahchors-and-multiline-mode/article.md rename to 11-regular-expressions-javascript/13-regexp-ahchors/article.md index c187bd53..16abf01c 100644 --- a/11-regular-expressions-javascript/13-regexp-ahchors-and-multiline-mode/article.md +++ b/11-regular-expressions-javascript/13-regexp-ahchors/article.md @@ -1,4 +1,4 @@ -# Начало ^ и конец $ строки, многострочный режим +# Начало строки ^ и конец $ Знак каретки '^' и доллара '$' имеют в регулярном выражении особый смысл. Их называют "якорями" (anchor - англ.). [cut] diff --git a/2-ui/1-document/1-browser-environment/windowObjects.svg b/2-ui/1-document/1-browser-environment/windowObjects.svg index 5c3e9f39..0299109f 100644 --- a/2-ui/1-document/1-browser-environment/windowObjects.svg +++ b/2-ui/1-document/1-browser-environment/windowObjects.svg @@ -6,7 +6,7 @@ - + window diff --git a/2-ui/1-document/17-coordinates/coords.svg b/2-ui/1-document/17-coordinates/coords.svg index 98134e4e..4cc61710 100644 --- a/2-ui/1-document/17-coordinates/coords.svg +++ b/2-ui/1-document/17-coordinates/coords.svg @@ -13,7 +13,7 @@ - + <DIV> diff --git a/2-ui/1-document/4-traversing-dom/article.md b/2-ui/1-document/4-traversing-dom/article.md index 34d3c627..c19cba4c 100644 --- a/2-ui/1-document/4-traversing-dom/article.md +++ b/2-ui/1-document/4-traversing-dom/article.md @@ -354,6 +354,56 @@ alert( table.*!*rows[0].cells[0]*/!*.innerHTML ) // "один" Аналогичные полезные свойства есть у HTML-форм, они позволяют из формы получить все её элементы, а из них -- в свою очередь, форму. Мы рассмотрим их позже. +# Интерактивное путешествие + +Для того, чтобы убедиться, что вы разобрались с навигацией по DOM-ссылкам -- вашему вниманию предлагается интерактивное путешествие по DOM. + +Ниже вы найдёте документ (в ифрейме), и кнопки для перехода по нему. + +Изначальный элемент -- ``. Попробуйте по ссылкам найти "информацию". Или ещё чего-нибудь. + +Вы также можете открыть документ [в отдельном окне](travel/) и походить по нему в браузерной консоли разработчика, чтобы лучше понять разницу между показанным там DOM и реальным. + +Разметка: + +[html src="travel/index.html"/] + +Документ: + +[iframe id="travel-dom-iframe" src="travel" height=150] + +
    + +Навигация: +
      +
    • +
        +
      • +
      • Здесь стоите вы +
          +
        • +
        • +
        +
      • +
      • +
      +
    • +
    + +
    + + + +
    + + + + # Итого В DOM доступна навигация по соседним узлам через ссылки: @@ -367,4 +417,16 @@ alert( table.*!*rows[0].cells[0]*/!*.innerHTML ) // "один" [libs] d3 domtree -[/libs] \ No newline at end of file +[/libs] +[head] + + +[/head] + diff --git a/2-ui/1-document/4-traversing-dom/dom-links-elements.svg b/2-ui/1-document/4-traversing-dom/dom-links-elements.svg index 86d91b29..87f94de8 100644 --- a/2-ui/1-document/4-traversing-dom/dom-links-elements.svg +++ b/2-ui/1-document/4-traversing-dom/dom-links-elements.svg @@ -1,61 +1,67 @@ - + dom-links-elements.svg Created with bin/sketchtool. - + - document.documentElement <HTML> + document.documentElement - - - document.body (если внутри body) + + <HTML> - - - - + + + document.body + + + (если внутри body) + + + + + - parent - Element + parent + Element - + - <DIV> + <DIV> - - - - + + + + - next - Element - Sibling + next + Element + Sibling - - + + - previous - Element - Sibling + previous + Element + Sibling - - + + - children + children - first - Element - Child + first + Element + Child - last - Element - Child + last + Element + Child diff --git a/2-ui/1-document/4-traversing-dom/dom-links.svg b/2-ui/1-document/4-traversing-dom/dom-links.svg index db613cc9..79fb8907 100644 --- a/2-ui/1-document/4-traversing-dom/dom-links.svg +++ b/2-ui/1-document/4-traversing-dom/dom-links.svg @@ -1,58 +1,64 @@ - + dom-links.svg Created with bin/sketchtool. - - - + + + - document + document - document.documentElement <HTML> + document.documentElement - - document.body (если внутри body) + + <HTML> - - - - - - + + document.body + + + (если внутри body) + + + + + + + - parentNode + parentNode - + - <DIV> + <DIV> - - - - + + + + - nextSibling + nextSibling - - + + - previousSibling + previousSibling - - + + - childNodes + childNodes - firstChild + firstChild - lastChild + lastChild diff --git a/2-ui/1-document/4-traversing-dom/travel.view/index.html b/2-ui/1-document/4-traversing-dom/travel.view/index.html new file mode 100644 index 00000000..80e28414 --- /dev/null +++ b/2-ui/1-document/4-traversing-dom/travel.view/index.html @@ -0,0 +1,20 @@ + + + + + Документ + + + + +
      +
    • + Осторожно +
    • +
    • + +
    + + + + \ No newline at end of file diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-from-outside.svg b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-from-outside.svg index 8e3d9374..33ce8dd9 100644 --- a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-from-outside.svg +++ b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-from-outside.svg @@ -14,7 +14,7 @@
    - + #TO diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-over-elems.svg b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-over-elems.svg index 32bcd0ca..29db3a7d 100644 --- a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-over-elems.svg +++ b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-over-elems.svg @@ -6,11 +6,11 @@ - + #TO - + #FROM diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout.svg b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout.svg index 6b9e39cc..e39f1416 100644 --- a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout.svg +++ b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout.svg @@ -6,7 +6,7 @@ - + <DIV> diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-to-child.svg b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-to-child.svg index 79e7fc8b..fa0d9f92 100644 --- a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-to-child.svg +++ b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-to-child.svg @@ -6,11 +6,11 @@ - + #FROM - + #TO diff --git a/4-ajax/5-xhr-crossdomain/xhr-another-domain.svg b/4-ajax/5-xhr-crossdomain/xhr-another-domain.svg index 2d91e7fd..8202aaf8 100644 --- a/4-ajax/5-xhr-crossdomain/xhr-another-domain.svg +++ b/4-ajax/5-xhr-crossdomain/xhr-another-domain.svg @@ -6,15 +6,15 @@ - + JavaScript - + Браузер - + Сервер diff --git a/4-ajax/5-xhr-crossdomain/xhr-preflight.svg b/4-ajax/5-xhr-crossdomain/xhr-preflight.svg index b94f9bbc..896f2a37 100644 --- a/4-ajax/5-xhr-crossdomain/xhr-preflight.svg +++ b/4-ajax/5-xhr-crossdomain/xhr-preflight.svg @@ -6,15 +6,15 @@ - + JavaScript - + Браузер - + Сервер diff --git a/7-frames-and-windows/1-window-open/article.md b/7-frames-and-windows/1-window-methods/article.md similarity index 99% rename from 7-frames-and-windows/1-window-open/article.md rename to 7-frames-and-windows/1-window-methods/article.md index 4916fcd3..ab697bb6 100644 --- a/7-frames-and-windows/1-window-open/article.md +++ b/7-frames-and-windows/1-window-methods/article.md @@ -1,4 +1,4 @@ -# Открытие новых окон +# Открытие окон и методы window Всплывающее окно ("попап" -- от англ. Popup window) -- один из старейших способов показать пользователю ещё один документ. diff --git a/figures.sketch b/figures.sketch index 7331f9dc..905a2758 100644 Binary files a/figures.sketch and b/figures.sketch differ