مکان قرار دادن تگ اسکریپت در صفحه به چه صورت است ؟
مکان قرار دادن تگ اسکریپت در صفحه به چه صورت است ؟
مکان قرار دادن تگ اسکریپت در صفحه به چه صورت است ؟
معمولا کدها و توابع تعریفی بوسیله جاوااسکریپت باید در قسمت head صفحه قرار گیرد تا به موقع بارگذاري شده و براي استفاده در قسمت body صفحه آماده استفاده و فراخوانی باشند. معمولا کدهایی که در آن ها، توابع از قبل تعریف شده صدا زده می شوند در قسمت body قرار می گیرند. قراردادن تگ <script> در داخل قسمت body موجب اجراشدن کدهاي داخل آن به محض بارگذاري قسمتی از صفحه در مرورگر خواهد شد. براي مثال به تکه کد زیر دقت کنید:
<html>
<head>
<title>Title of Page</title>
<script language=”JavaScript”>
function sayHi() {
alert(“Hi”);
}
</script>
</head>
<body>
<script language=”JavaScript”>
sayHi();
</script>
<p>This is the first text the user will see.</p>
</body>
</html>
در کد فوق تابع sayHi() دقیقا قبل از نمایش هر گونه متنی در صفحه اجرا خواهد شد. به این معنی که پنجره alert قبل از متن This is the first text the user will see اجرا خواهد شد. این روش براي فراخوانی متدهاي جاوااسکریپت اصلا پیشنهاد نمی شود و می بایست به جاي آن از کنترلگر هاي رویداد استفاده کرد. مثلا:
<head>
<title>Title of Page</title>
<script language=”JavaScript”>
function sayHi() {
alert(“Hi”);
}
</script>
</head>
<body>
<input type=”button” value=”Call Function” onclick=”sayHi()” />
</body>
</html>
در اینجا دکمه اي با استفاده از تگ input ایجاد شده است که در صورت کلیک بر روي آن تابع sayHi() فراخوانی می شود. صفت onclick در اینجا کنترلگر رویدادي را که باید به رویداد رخ داده پاسخ دهد، تعیین می کند. نکته اینکه ازآنجایی که کدهاي جاوااسکریپت به محض بارگذاري اجرا هم می شوند ممکن است در این صورت توابعی که از قبل وجود ندارند فراخوانی شوند که در این صورت یک خطا رخ خواهد داد. در مثال قبل با عوض کردن جاي تگ هاي <script> یک خطا رخ خواهد داد:
<html>
<head>
<title>Title of Page</title>
</head>
<body>
<script language=”JavaScript”>
sayHi();
</script>
<p>This is the first text the user will see.</p>
<script language=”JavaScript”>
function sayHi() {
alert(“Hi”);
}
</script>
</body>
</html>
در صورت اجراي کد فوق یک خطا رخ خواهد داد زیرا تابع قبل از اینکه تعریف شود فراخوانی شده است. به دلیل بارگذاري کدها از بالا به پایین، تابع sayHi() تا زمانی که تگ <script> دوم ایجاد نشده است در دسترس نخواهد بود
منبع : انجمن علمی مهندسی فناوری اطلاعات دانشگاه پیام نور مرکز اران و بید گل
برای اموزش های ویدیویی زبان جاوا اسکریپت به بستر ویدیو های اموزشی بروید