۲۰ دسامبر ۲۰۲۲

تعاملی: alert، prompt، confirm

همانطور که از مرورگر به عنوان محیط آزمایشی خودمان استفده می‌کنیم، بگذارید چند تابع تعاملی را بررسی کنیم: alert، prompt و confirm.

alert

این یکی را قبلاً هم دیده‌ایم. یک پیغام نمایش می‌دهد و صبر می‌کند تا کاربر دکمهٔ «OK» را بزند.

برای مثال:

alert("سلام");

کلمۀ modal window به این معنا می‌‌باشد که بازدیدکننده تا وقتی که پنجره باز است نمی‌تواند با بقیۀ صفحه تعامل داشته باشد، مثلا دکمه‌های دیگر را بزند و غیره. در این مثال، تا وقتی که بر روی “OK” بزند.

prompt

تابع prompt دو پارامتر دارد:

result = prompt(title, [default]);

این تابع یک پنجرهٔ modal همراه با یک پیغام، یک فیلد ورودی برای بازدیدکننده، و دکمه‌های «OK/Cancel» را نمایش می‌دهد.

title
پیغامی که به کاربر نمایش داده می‌شود.
default
پارامتر اختیاری دوم، مقدار اولیه برای فیلد ورودی.
براکت‌های درون سینتکس [...]

براکت‌های اطراف defaultدر سینتکس بالا اختیاری بودن پارامتر را مشخص می‌کند.

بازدیدکننده می‌تواند چیزی را در فیلد ورودی prompt تایپ کند و دکمهٔ «OK» را بزند. سپس ما متن را در result دریافت می‌کنیم. یا بازدیدکننده می‌تواند با زدن دکمهٔ «Cancel» یا فشردن Esc ورودی را کنسل کند.

تابع prompt متن دریافتی از فیلد ورودی را بر می‌گرداند اما درصورت کنسل شدن null را بر می‌گرداند.

برای مثال:

let age = prompt('How old are you?', 100);

alert(`You are ${age} years old!`); // You are 100 years old!
در اینترنت اکسپلورر: همیشه default را تعریف کنید.

پارامتر دوم اختیاری است، اما اگر آن را تعریف نکنیم، اینترنت اکسپلورر متن "undefined" را درون آن قرار می‌دهد.

کد زیر را در اینترنت اکسپلورر اجرا کنید تا ببینید:

let test = prompt("تست");

پس، برای خوب به نظر رسیدن prompt ها در اینترنت اکسپلورر، ما پیشنهاد می‌کنیم همیشه پارامتر دوم را تعریف کنید:

let test = prompt("تست", ''); // <-- برای اینترنت اکسپلورر

confirm

سینتکس کد:

result = confirm(question);

تابع confirm یک پنجرهٔ modal همراه با یک question (سوال) و دو دکمهٔ OK و Cancel نمایش می‌دهد.

در صورتی که بر روی OK کلیک شود، نتیجه true و در غیر این‌صورت، نتیجه false خواهد شد.

برای مثال:

let isBoss = confirm("آیا شما رئیس هستید؟");

alert( isBoss ); // خواهد بود true پاس داده شود نتیجه OK اگر

خلاصه

ما ۳ تابع خاص مرورگر را که از طریق آن‌ها می‌توان با کاربر تعامل کرد را بررسی کردیم:

alert
نمایش یک پیغام.
prompt
نمایش یک پیغام و درخواست از کاربر برای وارد کردن متن. این تابع متن را و یا اگر دکمهٔ Cancel یا Esc زده شود null را بر می‌گرداند.
confirm
نمایش یک پیغام و منتظر ماندن برای کاربر تا دکمهٔ «OK» یا «Cancel» را فشار دهد. این تابع برای OK مقدار true و برای Cancel/Esc مقدار false را بر می‌گرداند.

همهٔ این توابع، modal هستند: آن‌ها اجرای اسکریپت را متوقف می‌کنند و به بازدیدکننده اجازه تعامل با بقیهٔ صفحه را تا زمانی که پنجره بسته شود نمی‌دهند.

دو محدودیت دربارهٔ همهٔ تابع‌های بالا وجود دارد:

  1. مکان دقیق پنجرهٔ modal توسط مرورگر تعیین می‌شود. معمولاً در وسط صفحه قرار دارد.
  2. ظاهر دقیق پنجره نیز توسط مرورگر تعیین می‌شود. ما نمی‌توانیم آن را تغییر دهیم.

این بهایی‌ست که برای سادگی می‌پردازیم. راه‌های دیگری برای نمایش پنجره‌های بهتر و غنی‌تر برای تعامل با بازدیدکننده نیز وجود دارد، ولی اگر «زرق و برق» برای‌تان مهم نیست، این توابع کار را به خوبی انجام می‌دهند.

تمارین

اهمیت: 4

یک صفحهٔ ساده وب بسازید که نام را درخواست می‌کند و آن را نمایش می‌دهد.

اجرای دمو

کد جاوااسکریپت:

let name = prompt("اسم شما چیست؟", "");
alert(name);

کل صفحه:

<!DOCTYPE html>
<html>
<body>

  <script>
    'use strict';

    let name = prompt("اسم شما چیست؟", "");
    alert(name);
  </script>

</body>
</html>
نقشه آموزش