ÐÑа ÑÑаÑÑÑ Ð¿Ñизвана даÑÑ Ð¿ÑакÑиÑеÑкий опÑÑ Ð½Ð° оÑнове ÑеоÑеÑиÑеÑÐºÐ¸Ñ Ð·Ð½Ð°Ð½Ð¸Ð¹ пÑиведÑннÑÑ Ð² пÑедÑдÑÑей ÑÑаÑÑе. ÐопÑÑно Ð¼Ñ Ñакже обÑÑÑним некоÑоÑÑе важнÑе деÑали ÑабоÑÑ Ñ ÑÑнкÑиÑми.
ÐкÑивное обÑÑение: поÑÑÑоение ÑÑнкÑииÐолÑзоваÑелÑÑÐºÐ°Ñ ÑÑнкÑиÑ, коÑоÑÑÑ Ð¼Ñ ÑобиÑаемÑÑ Ð¿Ð¾ÑÑÑоиÑÑ, бÑÐ´ÐµÑ Ð½Ð°Ð·ÑваÑÑÑÑ displayMessage()
. Ðна оÑобÑÐ°Ð·Ð¸Ñ Ð½Ð°ÑÑÑаиваемое окно ÑообÑÐµÐ½Ð¸Ñ Ð½Ð° веб-ÑÑÑаниÑе и бÑÐ´ÐµÑ Ð´ÐµÐ¹ÑÑвоваÑÑ ÐºÐ°Ðº наÑÑÑÐ°Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ð·Ð°Ð¼ÐµÐ½Ð° вÑÑÑоенной в бÑаÑÐ·ÐµÑ ÑÑнкÑии alert(). ÐÑ Ð²Ð¸Ð´ÐµÐ»Ð¸ ÑÑÑ ÑÑнкÑÐ¸Ñ ÑанÑÑе. ÐведиÑе ÑледÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð² конÑоли JavaScript бÑаÑзеÑа на лÑбой ÑÑÑаниÑе:
alert("This is a message");
ФÑнкÑÐ¸Ñ alert
пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¾Ð´Ð¸Ð½ аÑгÑÐ¼ÐµÐ½Ñ - ÑÑÑокÑ, коÑоÑÐ°Ñ Ð¾ÑобÑажаеÑÑÑ Ð² окне ÑообÑÐµÐ½Ð¸Ñ Ð½Ð° веб-ÑÑÑаниÑе ÐопÑобÑйÑе измениÑÑ ÑÑÑокÑ, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ ÑообÑение.
ФÑнкÑÐ¸Ñ alert
огÑаниÑена: Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе измениÑÑ ÑекÑÑ ÑообÑениÑ, но не полÑÑиÑÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ ÐµÐ³Ð¾ ÑÑилÑ, напÑимеÑ, ÑвеÑ, знаÑок или ÑÑо-Ñо еÑÑ. Создадим ÑообÑение, более инÑеÑеÑное по ÑÑилÑ.
ÐÑимеÑание: ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ Ð±ÑÐ´ÐµÑ ÑабоÑаÑÑ Ð²Ð¾ вÑÐµÑ ÑовÑеменнÑÑ Ð±ÑаÑзеÑÐ°Ñ , но ÑÑÐ¸Ð»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑглÑдеÑÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ ÑмеÑнÑм в более ÑÑаÑÑÑ Ð±ÑаÑзеÑÐ°Ñ . ÐÑ ÑекомендÑем вам вÑполнÑÑÑ ÑÑо ÑпÑажнение в ÑовÑеменном бÑаÑзеÑе, Ñаком как Firefox, Opera или Chrome.
ÐÑÐ½Ð¾Ð²Ð½Ð°Ñ ÑÑнкÑиÑÐÐ»Ñ Ð½Ð°Ñала давайÑе ÑобеÑÑм оÑновнÑÑ ÑÑнкÑиÑ.
ÐÑимеÑание: ÐÐ»Ñ ÑоглаÑований имÑн ÑÑнкÑий нÑжно ÑледоваÑÑ Ñем же пÑавилам, ÑÑо и пÑавила Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÐµÑеменнÑÑ . ÐÑлиÑиÑÑ Ð¸Ð¼ÐµÐ½Ð° ÑÑнкÑий Ð¾Ñ Ð¸Ð¼Ñн пеÑеменнÑÑ Ð¿ÑоÑÑо: поÑле имÑн ÑÑнкÑий ÑказÑваÑÑÑÑ ÐºÑÑглÑе Ñкобки, а поÑле имÑн пеÑеменнÑÑ Ð¸Ñ Ð½ÐµÑ.
ÐÑкÑойÑе Ñайл function-start.html и ÑкопиÑÑйÑе его Ñебе на компÑÑÑеÑ. Ðод HTML в нем пÑеделÑно пÑоÑÑ: body ÑодеÑÐ¶Ð¸Ñ ÑолÑко Ð¾Ð´Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÑ. Также здеÑÑ Ð¿ÑедÑÑавлен базовÑй CSS Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð°ÑÑÑаиваемого окна ÑообÑений и пÑÑÑой ÑÐ»ÐµÐ¼ÐµÐ½Ñ <script>
Ð´Ð»Ñ ÑазмеÑÐµÐ½Ð¸Ñ Ð½Ð°Ñего JavaScript.
ÐаÑем добавÑÑе ÑÑÑÐ¾ÐºÑ Ð²Ð½ÑÑÑи ÑлеменÑа <script>
:
function displayMessage() {}
ÐÑ Ð½Ð°Ñинаем Ñ ÐºÐ»ÑÑевого Ñлова function
, ÑÑо ознаÑаеÑ, ÑÑо Ð¼Ñ Ð¾Ð¿ÑеделÑем ÑÑнкÑиÑ. Ðа ним ÑледÑÐµÑ Ð¸Ð¼Ñ, коÑоÑое Ð¼Ñ Ñ
оÑим даÑÑ Ð½Ð°Ñей ÑÑнкÑии, Ð½Ð°Ð±Ð¾Ñ ÐºÑÑглÑÑ
Ñкобок и Ð½Ð°Ð±Ð¾Ñ ÑигÑÑнÑÑ
Ñкобок. ÐÑбÑе паÑамеÑÑÑ, коÑоÑÑе Ð¼Ñ Ñ
оÑим задаÑÑ Ð½Ð°Ñей ÑÑнкÑии, заклÑÑаÑÑ Ð² кÑÑглÑе Ñкобки, а код, коÑоÑÑй запÑÑкаеÑÑÑ Ð¿Ñи вÑзове ÑÑнкÑии, наÑ
одиÑÑÑ Ð²Ð½ÑÑÑи ÑигÑÑнÑÑ
Ñкобок.
ÐаконеÑ, добавÑÑе ÑледÑÑÑий код внÑÑÑи ÑигÑÑнÑÑ Ñкобок:
var html = document.querySelector("html");
var panel = document.createElement("div");
panel.setAttribute("class", "msgBox");
html.appendChild(panel);
var msg = document.createElement("p");
msg.textContent = "This is a message box";
panel.appendChild(msg);
var closeBtn = document.createElement("button");
closeBtn.textContent = "x";
panel.appendChild(closeBtn);
closeBtn.onclick = function () {
panel.parentNode.removeChild(panel);
};
РаÑÑмоÑÑим ÑÑÐ¾Ñ ÐºÐ¾Ð´ по ÑÑÑокам (пÑим. - в оÑигинале ÑÑаÑÑи: "bit by bit").
РпеÑвой ÑÑÑоке иÑполÑзÑеÑÑÑ ÑÑнкÑÐ¸Ñ DOM API под именем document.querySelector()
Ð´Ð»Ñ Ð²ÑбоÑа ÑлеменÑа <html>
, ÑоÑ
ÑанÑÑÑÐ°Ñ ÑÑÑÐ»ÐºÑ Ð½Ð° него в пеÑеменной html
, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð·Ð¶Ðµ Ð¼Ñ Ð¼Ð¾Ð³Ð»Ð¸ Ñ Ð½ÐµÐ¹ ÑÑо-Ñо ÑделаÑÑ:
var html = document.querySelector("html");
Ð ÑледÑÑÑем Ñазделе иÑполÑзÑеÑÑÑ Ð´ÑÑÐ³Ð°Ñ ÑÑнкÑÐ¸Ñ DOM API, назÑÐ²Ð°ÐµÐ¼Ð°Ñ Document.createElement()
, пÑименÑеÑÑÑ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑлеменÑа <div>
и ÑоÑ
ÑанÑÐµÑ ÑÑÑÐ»ÐºÑ Ð½Ð° него в пеÑеменной, назÑваемой panel
. ÐÑÐ¾Ñ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð±ÑÐ´ÐµÑ Ð²Ð½ÐµÑним конÑейнеÑом наÑего окна ÑообÑений.
ÐаÑем Ð¼Ñ Ð¸ÑполÑзÑем еÑÑ Ð¾Ð´Ð½Ñ ÑÑнкÑÐ¸Ñ DOM API, назÑваемÑÑ Element.setAttribute()
, ÑÑÐ¾Ð±Ñ ÑÑÑановиÑÑ Ð°ÑÑибÑÑ class
на наÑей панели Ñо знаÑением msgBox
. ÐÑо ÑпÑоÑÐ°ÐµÑ ÑÑилизаÑÐ¸Ñ ÑлеменÑа. ÐÑли Ð²Ñ Ð¿Ð¾ÑмоÑÑиÑе на CSS на ÑÑÑаниÑе, Ð²Ñ ÑвидиÑе, ÑÑо Ð¼Ñ Ð¸ÑполÑзÑем ÑелекÑÐ¾Ñ ÐºÐ»Ð°ÑÑа .msgBox
Ð´Ð»Ñ ÑÑилизаÑии окна ÑообÑÐµÐ½Ð¸Ñ Ð¸ его ÑодеÑжимого.
ÐаконеÑ, Ð¼Ñ Ð²ÑзÑваем ÑÑнкÑÐ¸Ñ DOM Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ Node.appendChild()
в пеÑеменной html
, коÑоÑÑÑ Ð¼Ñ ÑоÑ
Ñанили Ñанее, коÑоÑÐ°Ñ Ð²ÐºÐ»Ð°Ð´ÑÐ²Ð°ÐµÑ Ð¾Ð´Ð¸Ð½ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð² дÑÑгой как его доÑеÑний ÑлеменÑ. УказÑваем Ð¿Ð°Ð½ÐµÐ»Ñ <div>
как доÑеÑний ÑлеменÑ, коÑоÑÑй Ð¼Ñ Ñ
оÑим вложиÑÑ Ð²Ð½ÑÑÑÑ ÑлеменÑа <html>
. То еÑÑÑ, когда Ð¼Ñ ÑоздаÑм какой-Ñо ÑлеменÑ, он не пÑоÑÑо бÑÐ´ÐµÑ Ð¾ÑобÑажаÑÑÑÑ Ð½Ð° ÑÑÑаниÑе Ñам по Ñебе, нам нÑжно ÑказаÑÑ, кÑда его помеÑÑиÑÑ.
var panel = document.createElement("div");
panel.setAttribute("class", "msgBox");
html.appendChild(panel);
Ð ÑледÑÑÑиÑ
двÑÑ
ÑазделаÑ
иÑполÑзÑÑÑÑÑ Ñе же ÑÑнкÑии createElement()
и appendChild()
, коÑоÑÑе Ð¼Ñ Ñже видели, ÑÑÐ¾Ð±Ñ ÑоздаÑÑ Ð´Ð²Ð° новÑÑ
ÑлеменÑа: <p>
и <button>
, и вÑÑавиÑÑ Ð¸Ñ
на ÑÑÑаниÑÑ, как доÑеÑниÑ
ÑлеменÑов панели <div>
. ÐÑ Ð¸ÑполÑзÑем ÑвойÑÑво Node.textContent
, коÑоÑое пÑедÑÑавлÑÐµÑ ÑекÑÑовое ÑодеÑжимое ÑлеменÑа, Ð´Ð»Ñ Ð²ÑÑавки ÑообÑÐµÐ½Ð¸Ñ Ð²Ð½ÑÑÑи абзаÑа и Ñимвол «x» внÑÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸. ÐажаÑие/акÑиваÑÐ¸Ñ ÑÑой кнопки бÑÐ´ÐµÑ Ð·Ð°ÐºÑÑваÑÑ Ð¾ÐºÐ½Ð¾ ÑообÑениÑ.
var msg = document.createElement("p");
msg.textContent = "This is a message box";
panel.appendChild(msg);
var closeBtn = document.createElement("button");
closeBtn.textContent = "x";
panel.appendChild(closeBtn);
РзаклÑÑении Ð¼Ñ Ð¸ÑполÑзÑем обÑабоÑÑик ÑобÑÑий GlobalEventHandlers.onclick
, ÑÑÐ¾Ð±Ñ Ð¿Ñи нажаÑии кнопки бÑл запÑÑен некоÑоÑÑй код Ð´Ð»Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð²Ñей панели Ñо ÑÑÑаниÑÑ, Ñ.е. Ð´Ð»Ñ Ð·Ð°ÐºÑÑÑÐ¸Ñ Ð¾ÐºÐ½Ð° ÑообÑениÑ.
ÐкÑаÑÑе, обÑабоÑÑик onclick
â ÑÑо ÑвойÑÑво, доÑÑÑпное Ð´Ð»Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ (или, ÑакÑиÑеÑки, Ð´Ð»Ñ Ð»Ñбого ÑлеменÑа ÑÑÑаниÑÑ), коÑоÑое можно ÑÑÑановиÑÑ Ð² ÑÑнкÑиÑ, ÑÑÐ¾Ð±Ñ ÑказаÑÑ, какой код ÑледÑÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑ Ð¿Ñи нажаÑии кнопки. ÐÑ ÑзнаеÑе об ÑÑом болÑÑе в наÑей ÑÑаÑÑе о поÑледÑÑÑиÑ
ÑобÑÑиÑÑ
. ÐÑ Ð´ÐµÐ»Ð°ÐµÐ¼ обÑабоÑÑик onclick
ÑавнÑм анонимной ÑÑнкÑии, коÑоÑÐ°Ñ ÑодеÑÐ¶Ð¸Ñ ÐºÐ¾Ð´, запÑÑкаемÑй пÑи нажаÑии кнопки. СÑÑока внÑÑÑи ÑÑнкÑии иÑполÑзÑÐµÑ ÑÑнкÑÐ¸Ñ Node.removeChild()
DOM API, ÑÑÐ¾Ð±Ñ ÑказаÑÑ, ÑÑо Ð¼Ñ Ñ
оÑим ÑдалиÑÑ Ð¾Ð¿ÑеделÑннÑй доÑеÑний ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð²Ð½ÑÑÑи HTML â в данном ÑлÑÑае Ð¿Ð°Ð½ÐµÐ»Ñ <div>
.
closeBtn.onclick = function () {
panel.parentNode.removeChild(panel);
};
РпÑинÑипе, веÑÑ ÑÑÐ¾Ñ Ð±Ð»Ð¾Ðº кода генеÑиÑÑÐµÑ Ð±Ð»Ð¾Ðº HTML, коÑоÑÑй вÑглÑÐ´Ð¸Ñ Ñак и вÑÑавлÑÐµÑ ÐµÐ³Ð¾ на ÑÑÑаниÑÑ:
<div class="msgBox">
<p>This is a message box</p>
<button>x</button>
</div>
Ðам не обÑзаÑелÑно запоминаÑÑ ÑейÑаÑ, как ÑабоÑÐ°ÐµÑ ÐºÐ°Ð¶Ð´Ñй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð²Ð¾ вÑем ÑÑом коде. ÐÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð·Ð°Ð´Ð°Ñа â понÑÑÑ ÑÑÑÑкÑÑÑÑ Ð¸ иÑполÑзование ÑÑнкÑии, пÑи ÑÑом Ð¼Ñ Ñ Ð¾Ñели показаÑÑ ÑÑо-Ñо инÑеÑеÑное Ð´Ð»Ñ ÑÑого пÑимеÑа.
ÐÑзов ÑÑнкÑииТепеÑÑ Ñ Ð²Ð°Ñ ÐµÑÑÑ Ð¾Ð¿Ñеделение ÑÑнкÑии, напиÑанное в ваÑем ÑлеменÑе <script>
, но оно ниÑего не бÑÐ´ÐµÑ Ð´ÐµÐ»Ð°ÑÑ Ð² Ñом виде, в каком оно еÑÑÑ.
ÐопÑобÑйÑе напиÑаÑÑ ÑледÑÑÑÑÑ ÑÑÑÐ¾ÐºÑ Ð¿Ð¾Ð´ Ñвоей ÑÑнкÑией, ÑÑÐ¾Ð±Ñ Ð²ÑзваÑÑ ÐµÑ:
ÐÑа ÑÑÑока вÑзÑÐ²Ð°ÐµÑ ÑÑнкÑиÑ, немедленно запÑÑÐºÐ°Ñ ÐµÑ. Ðогда Ð²Ñ ÑÐ¾Ñ ÑаниÑе код и пеÑезагÑÑзиÑе его в бÑаÑзеÑе, Ð²Ñ ÑвидиÑе, ÑÑо неболÑÑое окно ÑообÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑвлÑеÑÑÑ ÑÑÐ°Ð·Ñ Ð¸ ÑолÑко один Ñаз.
ТепеÑÑ Ð¾ÑкÑойÑе инÑÑÑÑменÑÑ ÑазÑабоÑÑика бÑаÑзеÑа на ÑÑÑаниÑе пÑимеÑа, пеÑейдиÑе в конÑÐ¾Ð»Ñ JavaScript и Ñнова введиÑе ÑÑÑ ÑÑÑокÑ. ÐÑ ÑвидиÑе, ÑÑо окно поÑвиÑÑÑ Ñнова! ТепеÑÑ Ñ Ð½Ð°Ñ ÐµÑÑÑ ÑÑнкÑÐ¸Ñ Ð¼Ð½Ð¾Ð³Ð¾ÐºÑаÑного иÑполÑзованиÑ, коÑоÑÑÑ Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ вÑзваÑÑ Ð² лÑбое вÑемÑ.
Ðо мÑ, веÑоÑÑно, Ñ Ð¾Ñим, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¾ поÑвлÑлоÑÑ Ð² оÑÐ²ÐµÑ Ð½Ð° дейÑÑÐ²Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¸ ÑиÑÑемÑ. Ð ÑеалÑном пÑиложении Ñакое окно ÑообÑениÑ, веÑоÑÑно, бÑÐ´ÐµÑ Ð²Ñзвано в оÑÐ²ÐµÑ Ð½Ð° доÑÑÑпноÑÑÑ Ð½Ð¾Ð²ÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð»Ð¸, еÑли пÑоизоÑла оÑибка, или, напÑимеÑ, еÑли полÑзоваÑÐµÐ»Ñ Ð¿ÑÑаеÑÑÑ ÑдалиÑÑ Ñвой пÑоÑÐ¸Ð»Ñ (Â«Ð²Ñ ÑвеÑÐµÐ½Ñ Ð² ÑÑом?»), или еÑли полÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÐµÑ Ð½Ð¾Ð²Ñй конÑÐ°ÐºÑ Ð¸ опеÑаÑÐ¸Ñ ÑÑпеÑно завеÑÑена и Ñ. д.
Ð ÑÑой демонÑÑÑаÑии Ð¼Ñ Ð¿Ð¾Ð»ÑÑим окно ÑообÑениÑ, когда полÑзоваÑÐµÐ»Ñ Ð½Ð°Ð¶Ð¸Ð¼Ð°ÐµÑ ÐºÐ½Ð¾Ð¿ÐºÑ.
УдалиÑе пÑедÑдÑÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð½ÑÑ ÑÑÑокÑ.
ÐаÑем Ð¼Ñ Ð²ÑбеÑем ÐºÐ½Ð¾Ð¿ÐºÑ Ð¸ ÑÐ¾Ñ Ñаним ÑÑÑÐ»ÐºÑ Ð½Ð° Ð½ÐµÑ Ð² пеÑеменной. ÐобавÑÑе ÑледÑÑÑÑÑ ÑÑÑÐ¾ÐºÑ Ð² Ñвой код, над опÑеделением ÑÑнкÑии:
var btn = document.querySelector("button");
ÐаконеÑ, добавÑÑе ÑледÑÑÑÑÑ ÑÑÑÐ¾ÐºÑ Ð½Ð¸Ð¶Ðµ пÑедÑдÑÑей:
btn.onclick = displayMessage;
ÐналогиÑно наÑей ÑÑÑоке closeBtn.onclick...
внÑÑÑи ÑÑнкÑии здеÑÑ Ð¼Ñ Ð²ÑзÑваем некоÑоÑÑй код в оÑÐ²ÐµÑ Ð½Ð° нажаÑие кнопки. Ðо в ÑÑом ÑлÑÑае вмеÑÑо вÑзова анонимной ÑÑнкÑии, ÑодеÑжаÑей некоÑоÑÑй код, Ð¼Ñ Ð²ÑзÑваем Ð¸Ð¼Ñ Ð½Ð°Ñей ÑÑнкÑии напÑÑмÑÑ.
Ð¡Ð¾Ñ ÑаниÑе и обновиÑе ÑÑÑаниÑÑ. ТепеÑÑ Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑвидеÑÑ Ð¾ÐºÐ½Ð¾ Ñ ÑообÑением, когда Ð²Ñ Ð½Ð°Ð¶Ð¸Ð¼Ð°ÐµÑе кнопкÑ.
Ðозможно, вам инÑеÑеÑно, поÑÐµÐ¼Ñ Ð¼Ñ Ð½Ðµ вклÑÑили кÑÑглÑе Ñкобки поÑле имени ÑÑнкÑии. ÐÑо ÑвÑзано Ñ Ñем, ÑÑо нам нÑжно не ÑÑÐ°Ð·Ñ Ð²ÑзваÑÑ ÑÑнкÑиÑ, а ÑолÑко поÑле нажаÑÐ¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸. ÐÑли Ð²Ñ Ð¿Ð¾Ð¿ÑÑаеÑеÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ ÑÑÑÐ¾ÐºÑ Ð½Ð°
btn.onclick = displayMessage();
ÑÐ¾Ñ ÑаниÑе и пеÑезагÑÑзиÑе ÑÑÑаниÑÑ, Ð²Ñ ÑвидиÑе, ÑÑо окно ÑообÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑвлÑеÑÑÑ Ð±ÐµÐ· нажаÑÐ¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸! Скобки в ÑÑом конÑекÑÑе иногда назÑваÑÑ Â«Ð¾Ð¿ÐµÑаÑоÑом вÑзова ÑÑнкÑии». ÐÑ Ð¸ÑполÑзÑеÑе Ð¸Ñ ÑолÑко в Ñом ÑлÑÑае, еÑли Ñ Ð¾ÑиÑе немедленно запÑÑÑиÑÑ ÑÑнкÑÐ¸Ñ Ð² ÑекÑÑей облаÑÑи. Ð ÑÑом же оÑноÑении код внÑÑÑи анонимной ÑÑнкÑии не запÑÑкаеÑÑÑ ÑÑазÑ, Ñак как он Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð²Ð½ÑÑÑи облаÑÑи ÑÑнкÑий.
ÐÑли Ð²Ñ Ð¿Ñобовали поÑледний ÑкÑпеÑименÑ, пеÑед Ñем, как пÑодолжиÑÑ, обÑзаÑелÑно оÑмениÑе поÑледнее изменение.
УлÑÑÑение ÑÑнкÑии Ñ Ð¿Ð°ÑамеÑÑамиРнÑнеÑнем виде ÑÑнкÑÐ¸Ñ Ð¿Ð¾-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð½Ðµ оÑÐµÐ½Ñ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð° â Ð¼Ñ Ð½Ðµ Ñ Ð¾Ñим показÑваÑÑ Ð¾Ð´Ð½Ð¾ и Ñо же ÑообÑение по ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ°Ð¶Ð´Ñй Ñаз. ÐавайÑе ÑлÑÑÑим наÑÑ ÑÑнкÑиÑ, добавив некоÑоÑÑе паÑамеÑÑÑ, позволÑÑÑие нам назÑваÑÑ ÐµÑ ÑазлиÑнÑми ваÑианÑами.
ÐÑежде вÑего, обновиÑе пеÑвÑÑ ÑÑÑÐ¾ÐºÑ ÑÑнкÑии:
function displayMessage() {
к ÑÑомÑ:
function displayMessage(msgText, msgType) {
ТепеÑÑ, когда Ð¼Ñ Ð²ÑзÑваем ÑÑнкÑиÑ, Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ пÑедоÑÑавиÑÑ Ð´Ð²Ð° знаÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑ Ð² кÑÑглÑÑ ÑÐºÐ¾Ð±ÐºÐ°Ñ , ÑÑÐ¾Ð±Ñ ÑказаÑÑ ÑообÑение Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² окне ÑообÑениÑ, а Ñакже Ñип ÑообÑениÑ.
ЧÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ Ð¿ÐµÑвÑй паÑамеÑÑ, обновиÑе ÑледÑÑÑÑÑ ÑÑÑÐ¾ÐºÑ Ð²Ð½ÑÑÑи Ñвоей ÑÑнкÑии:
msg.textContent = "This is a message box";
к ÑÑомÑ:
msg.textContent = msgText;
РпоÑледнее, но не менее важное: ÑепеÑÑ Ð²Ð°Ð¼ нÑжно обновиÑÑ Ð²Ñзов ÑÑнкÑии, ÑÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ Ð² него обновлÑннÑй ÑекÑÑ ÑообÑениÑ. ÐзмениÑе ÑледÑÑÑÑÑ ÑÑÑокÑ:
btn.onclick = displayMessage;
к ÑÑÐ¾Ð¼Ñ Ð±Ð»Ð¾ÐºÑ:
btn.onclick = function () {
displayMessage("Woo, this is a different message!");
};
ÐÑли Ð¼Ñ Ñ Ð¾Ñим ÑказаÑÑ Ð¿Ð°ÑамеÑÑÑ Ð² кÑÑглÑÑ ÑÐºÐ¾Ð±ÐºÐ°Ñ Ð´Ð»Ñ Ð²ÑзÑваемой нами ÑÑнкÑии, Ñо Ð¼Ñ Ð½Ðµ можем назваÑÑ ÐµÑ Ð½Ð°Ð¿ÑÑмÑÑ, нам нÑжно помеÑÑиÑÑ ÐµÑ Ð² анонимнÑÑ ÑÑнкÑиÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð° не Ð½Ð°Ñ Ð¾Ð´Ð¸Ð»Ð°ÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно в облаÑÑи видимоÑÑи и, ÑледоваÑелÑно, не вÑзÑвалаÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾. ТепеÑÑ Ð¾Ð½Ð° не бÑÐ´ÐµÑ Ð²ÑзÑваÑÑÑÑ Ð´Ð¾ нажаÑÐ¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸.
ÐеÑезагÑÑзиÑе и пÑоÑеÑÑиÑÑйÑе код еÑÑ Ñаз, и Ð²Ñ ÑвидиÑе, ÑÑо он по-пÑÐµÐ¶Ð½ÐµÐ¼Ñ ÑабоÑаеÑ, ÑолÑко ÑепеÑÑ Ð²Ñ Ñакже можеÑе изменÑÑÑ ÑообÑение внÑÑÑи паÑамеÑÑа, ÑÑÐ¾Ð±Ñ Ð¾ÑобÑажаÑÑ ÑазнÑе ÑообÑÐµÐ½Ð¸Ñ Ð² окне.
ÐеÑеÑ
од к ÑледÑÑÑÐµÐ¼Ñ Ð¿Ð°ÑамеÑÑÑ. ÐÑо поÑÑебÑÐµÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ болÑÑе ÑабоÑÑ. УÑÑановим его Ñак, ÑÑÐ¾Ð±Ñ Ð² завиÑимоÑÑи Ð¾Ñ Ñого, какой паÑамеÑÑ msgType
ÑÑÑановлен, ÑÑнкÑÐ¸Ñ Ð¾ÑобÑажала дÑÑгой знаÑок и дÑÑгой ÑÐ²ÐµÑ Ñона.
ÐÐ»Ñ Ð½Ð°Ñала, загÑÑзиÑе знаÑки, необÑ
одимÑе Ð´Ð»Ñ ÑÑого ÑпÑÐ°Ð¶Ð½ÐµÐ½Ð¸Ñ (warning и chat [ÑÑÑ ÑÑÑнÑе иконки на ÑÑÑном Ñоне... ÑÑолли на GitHub]) из GitHub. СоÑ
ÑаниÑе иÑ
в новой папке icons
в Ñом же меÑÑе, ÑÑо и Ð²Ð°Ñ HTML-Ñайл.
ÐÑимеÑание: Ðконки бÑли Ð½Ð°Ð¹Ð´ÐµÐ½Ñ Ð½Ð° iconfinder.com, и ÑазÑабоÑÐ°Ð½Ñ Nazarrudin Ansyari. СпаÑибо! (ФакÑиÑеÑкие ÑÑÑаниÑÑ Ð·Ð½Ð°Ñков бÑли пеÑемеÑÐµÐ½Ñ Ð¸Ð»Ð¸ ÑдаленÑ.)
ÐаÑем найдиÑе CSS внÑÑÑи ваÑего HTML-Ñайла. ÐÑ Ñделаем неÑколÑко изменений, ÑÑÐ¾Ð±Ñ Ð¾ÑвободиÑÑ Ð¼ÐµÑÑо Ð´Ð»Ñ Ð¸ÐºÐ¾Ð½Ð¾Ðº. Ðо-пеÑвÑÑ
, обновиÑе ÑиÑÐ¸Ð½Ñ .msgBox
:
измениÑе на:
ÐаÑем добавÑÑе ÑледÑÑÑие ÑÑÑоки в пÑавило .msgBox p { ... }
:
padding-left: 82px;
background-position: 25px center;
background-repeat: no-repeat;
ТепеÑÑ Ð½Ð°Ð¼ нÑжно добавиÑÑ ÐºÐ¾Ð´ в наÑÑ ÑÑнкÑÐ¸Ñ displayMessage()
Ð´Ð»Ñ Ð¾Ð±ÑабоÑки оÑобÑажений знаÑков. ÐобавÑÑе ÑледÑÑÑий блок ÑÑÑÑ Ð²ÑÑе закÑÑваÑÑей ÑигÑÑной Ñкобки "}
" ваÑей ÑÑнкÑии:
if (msgType === "warning") {
msg.style.backgroundImage = "url(icons/warning.png)";
panel.style.backgroundColor = "red";
} else if (msgType === "chat") {
msg.style.backgroundImage = "url(icons/chat.png)";
panel.style.backgroundColor = "aqua";
} else {
msg.style.paddingLeft = "20px";
}
ÐдеÑÑ, еÑли паÑамеÑÑ msgType
ÑÑÑановлен как 'warning'
, оÑобÑажаеÑÑÑ Ð·Ð½Ð°Ñок пÑедÑпÑеждениÑ, а ÑÐ²ÐµÑ Ñона панели ÑÑÑанавливаеÑÑÑ ÐºÑаÑнÑм. ÐÑли Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ ÑÑÑановлено знаÑение'chat'
, оÑобÑажаеÑÑÑ Ð·Ð½Ð°Ñок ÑаÑа, а ÑÐ²ÐµÑ Ñона панели ÑÑановиÑÑÑ Ð³Ð¾Ð»ÑбÑм. ÐÑли паÑамеÑÑ msgType
не задан вообÑе (или задано ÑÑо-Ñо дÑÑгое), Ñогда вÑÑÑÐ¿Ð°ÐµÑ Ð² дейÑÑвие else {...}
, а абзаÑÑ Ð¿ÑоÑÑо пÑиÑваиваÑÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ñе по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾ÑÑÑÑпÑ, Ð½ÐµÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð³Ð¾ знаÑка, пÑи ÑÑом не задаÑÑÑÑ ÑÐ²ÐµÑ Ñона окна ÑообÑениÑ. ÐÑо обеÑпеÑÐ¸Ð²Ð°ÐµÑ ÑоÑÑоÑние по ÑмолÑаниÑ, еÑли не Ñказан паÑамеÑÑ msgType
, ÑÑо ознаÑаеÑ, ÑÑо ÑÑо необÑзаÑелÑнÑй паÑамеÑÑ!
ÐавайÑе пÑоÑеÑÑиÑÑем наÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑннÑÑ ÑÑнкÑиÑ, попÑобÑем обновиÑÑ Ð²Ñзов displayMessage () из ÑÑого:
displayMessage("Woo, this is a different message!");
к Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸Ð· Ð½Ð¸Ñ :
displayMessage("Your inbox is almost full â delete some mails", "warning");
displayMessage("Brian: Hi there, how are you today?", "chat");
ÐоÑ, наÑколÑко полезной ÑÑановиÑÑÑ Ð½Ð°Ñа (ÑепеÑÑ Ð½Ðµ оÑенÑ) маленÑÐºÐ°Ñ ÑÑнкÑиÑ.
ÐÑимеÑание: ÐÑли Ñ Ð²Ð°Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ»Ð¸ пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð·Ð°Ð¿ÑÑком пÑимеÑа, не ÑÑеÑнÑйÑеÑÑ Ð¿ÑовеÑÑÑÑ Ñвой код на гоÑовой веÑÑии GitHub (Ñм. Ñакже в Ñежиме ÑеалÑного вÑемени) или обÑаÑиÑеÑÑ Ðº нам за помоÑÑÑ.
ÐÑводРÑÑой ÑÑаÑÑе Ð¼Ñ Ð¿Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð¸Ð»Ð¸ÑÑ Ñо вÑем пÑоÑеÑÑом ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿ÑакÑиÑеÑкой полÑзоваÑелÑÑкой ÑÑнкÑии, коÑоÑÑÑ Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑими доÑабоÑками можно пеÑенеÑÑи в ÑеалÑнÑй пÑоекÑ. Ð ÑледÑÑÑей ÑÑаÑÑе Ð¼Ñ ÑаÑÑмоÑÑим еÑÑ Ð¾Ð´Ð½Ñ Ð²Ð°Ð¶Ð½ÑÑ ÐºÐ¾Ð½ÑепÑÐ¸Ñ â возвÑаÑаемÑе знаÑÐµÐ½Ð¸Ñ ÑÑнкÑий.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4