محل قرارگیری کدهای JavaScript
محل قرارگیری کدهای JavaScript
کدهای JavaScript در صفحه HTML باید بین تگهای <script> و <script/> قرار داده شود.
کدهای JavaScript را می توان در بدنه صفحه HTML (بین تگهای باز و بسته <body> و <body/>) و یا در قسمت <head> صفحه قرار داد.
تگ <script>
از تگ <script>، برای وارد کردن کدهای JavaScript در صفحه HTML استفاده می شود.
تگهای باز و بسته <script> و <script/> می گوید، کدهای JavaScript کجا شروع و کجا پایان یافته است.
خطوط بین <script> و <script/> شامل کدهای JavaScript است:
alert("My First JavaScript");
</script>
مرورگر، کد JavaScript بین <script> و <script/> را ترجمه و اجرا می کند.
توجه: بدون تگ های باز و بسته <script> و <script/> ، مرورگر با دستورات بین آنها مانند یک متن معمولی برخورد می کند و آنها را عیناً در صفحه HTML نمایش می دهد. (خودتان امتحان کنید)
توجه: ممکن است برای تگ <script> خصوصیت type را تنظیم کنیم ("text/javascript"). نیاز به انجام این کار نیست، چون در تمام مرورگرها و در HTML5 زبان اسکریپت پیشفرض، JavaScript است.
کدهای JavaScript در بدنه صفحه HTML
در مثال زیر، هنگام بارگذاری صفحه یا (onload)، خروجی HTML در قسمت <body> چاپ می شود:
مثال (محل قرارگیری کدهای JavaScript)
<html>
<body>
.
.
<script>
document.write("<h1>This is a heading</h1>");
document.write("<p>This is a paragraph</p>");
</script>
.
.
</body>
</html>
همچنین در مثال زیر، تاریخ جاری سیستم، هنگام بارگذاری صفحه، داخل عنصر با شناسه "demo" نوشته می شود:
مثال (محل قرارگیری کدهای JavaScript)
<body>
<h1>My First Web Page</h1>
<p id="demo">My First Paragraph.</p>
<script type="text/javascript">
document.getElementById("demo").innerHTML=Date();
</script>
</body>
</html>
توجه: برای اطمینان بیشتر، کد JavaScript در پایین صفحه HTML قرار داده شده است (نباید قبل از ایجاد عنصر <p> کدمان اجرا شود)
توابع و رویدادها در JavaScript
کدهای JavaScript در صفحه HTML، زمانی که صفحه بارگذاری شود (onload) اجرا خواهند شد. اما این چیزی نیست که ما همیشه نیاز داریم.
بعضی مواقع می خواهیم زمانی که یک رویداد خاص اتفاق می افتد، کدمان اجرا شود، مانند زمانی که کاربر روی یک دکمه کلیک می کند. در این مورد می توانیم کدمان را داخل یک تابع قرار دهیم.
رویدادها در حالت عادی با توابع ترکیب می شوند، مانند صدا زدن یک تابع هنگامی که رویداد رخ می دهد.
در آموزش های بعدی درباره توابع و رویدادهای JavaScript بیشتر خواهید آموخت.
اسکریبت ها در دو قسمت <body> و <head>
می توان به صورت نامحدود، هر تعداد خط اسکریبت را در صفحه HTML قرار داد، و همچنین می توانید اسکریبت ها را همزمان در دو قسمت <body> و <head> بیاورید.
در حالت کلی، تمام توابع را در قسمت <head> صفحه و یا در پایین صفحه قرار می گیرد. این روش باعث می شود که تداخلی با محتویات صفحه پیش نیاید.
کدهای JavaScript در قسمت <head>
در مثال زیر، زمانی که روی دکمه کلیک شود یا به عبارتی رویداد onclick عنصر مورد نظر رخ دهد، تابع ()displayDate صدا زده می شود:
مثال (محل قرارگیری کدهای JavaScript)
<head>
<script type="text/javascript">
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>
</head>
<body>
<h1>My First Web Page</h1>
<p id="demo"></p>
<button type="button" onclick="displayDate()">Display Date</button>
</body>
</html>
همچنین در مثال ساده زیر، هنگامی که روی دکمه "Try it" کلیک شود، محتوای عنصر با شناسه "demo" تغییر می کند:
مثال (محل قرارگیری کدهای JavaScript)
<html>
<head>
<script>
function myFunction()
{
document.getElementById("demo").innerHTML="My First JavaScript Function";
}
</script>
</head>
<body>
<h1>My Web Page</h1>
<p id="demo">A Paragraph</p>
<button type="button" onclick="myFunction()">Try it</button>
</body>
</html>
یک تابع JavaScript در قسمت <body>
در این مثال، تابع "myFunction" در انتهای <body> قرار داده شده است و وقتی کاربر روی دکمه "Try it" کلیک کند، myFunction صدا زده می شود:
مثال (محل قرارگیری کدهای JavaScript)
<html>
<body>
<h1>My Web Page</h1>
<p id="demo">A Paragraph</p>
<button type="button" onclick="myFunction()">Try it</button>
<script>
function myFunction()
{
document.getElementById("demo").innerHTML="My First JavaScript Function";
}
</script>
</body>
</html>
استفاده از یک فایل JavaScript خارجی
کدهای JavaScript را همچنین می توان در یک فایل خارجی قرار داد.
فایل های خارجی JavaScript اغلب شامل کدهایی است که در چندین صفحه HTML مختلف استفاده می شود.
این فایل ها را باید با فرمت "js." ذخیره نمود.
توجه: اسکریبت خارجی نمی تواند شامل تگ های باز و بسته <script> و <script/> باشد.
برای استفاه از یک فایل اسکریبت خارجی در صفحه HTML، باید خصوصیت "src" تگ <script> را با آدرس فایل، تنظیم کنید:
مثال (محل قرارگیری کدهای JavaScript)
<html>
<body>
<script src="/myScript.js"></script>
</body>
</html>
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 56471
دیدگاهها
سلام
مزایا و معایب اضافه کردن فایل جاوا اسکریپتی به پروژه به جای استفاده استفاده از تک اسکریپت و نوشتن کدهای جاوااسکریپت در فایل HTML رو توضیح بدید لطفا و بگید توصیه شما چیه در این مورد؟
سلام من از کد زیر در اسکریپتم استفاده کردم اما عمل نمیکنه فقط کد اول کار میکنه.
البته از ورژن1.6.4.js استفاده میکنم همه کدها اجرا میشه .لطفا راهنماییم کنید
$(document).ready(function(){
$("div").css("b order", "3px solid red");
var i= $('li').size()+ 1;
$('#add').click(function()
{
$('' + i + '').appendTo('ul');
i++;
});
سلام.
1. ابتدا در سایت www.codepen.io ثبت نام کنید و سپس کدهای خودتان را همراه با کدهای html در داخل یک Pen ذخیره کنید و لینکش رو برای ما ارسال کنید، تا بتونیم اونها رو بررسی کنیم.
2. منظورتون از این اینکه گفتید "من از ورژن 1.6.4 از js استفاده می کنم" چیست؟ آیا منظورتون جی کوئری است؟
3. لطفا بگید دقیقا می خواهید با این کدها چه کاری رو انجام دهید، تابتونیم شما رو راهنمایی کنیم.
codepen.io/zahra-moradi/pen/VWbqQB
بله جی کوئری که استفاده می کنم فقط بعضی دستورهارو اجرا می کنه و این دستوراتی رو که نوشتم الان اجرا نمیکنه اما با استفاده از جی کوئری 1.6.4 همه این دستورها اجرا مشه. میخواستم علتشو بدونم
علتش اینه که در جی کوئری 3 به بعد، متد ()size منقضی و حذف شده است. اگر به جای متد ()size از پروپرتی length استفاده کنید، همه چیز درست میشه. به مثال زیر توجه کنید:
codepen.io/sbaloot/pen/pwwdJV?editors=1010
بی نهایت سپاسگزارم
سلام
می خواستم بدونم اگه باید جاوااسکریپت رو داخل تگ اسکریپت بنویسیم پس چه طور مثلا event ها رو خارج از تگ اسکریپت در کدل dom میشه نوشت؟ مثلا وقتی می خواهیم بنویسیم:
onclick=document.getElementById('id').InnerHTML = "some text"
الان این به لحاظ مفهومی مگه جاوااسکریپت نیست؟
پس چه طور میشه بیرون تگ اسکریپت نوشتش؟
سلام. روش کار به این صورت هست که کدهای جاوا اسکریپت و تابع های اون در داخل یک یا چند تگ script قرار می گیرند و سپس میشه به هنگام رخ دادن یک رویداد، این توابع رو فراخوانی کرد. مثل زیر:
<button onclick="myFunc tion()">Clic k me</button >
در کد بالا، هنگامی که بر روی این دکمه کلیک شود، تابع ()myFunction که در داخل تگ های script تعریف شده است، فراخوانی و اجرا می شود.
سلام و خسته نباشید
چرا بعضی وقتها کدهای اچ تی ام ال رو اگه پایین کد اسکریپت بنویسیم اجرا نمیشه!؟
ولی بعد وقتی همون تیکه کد اچ تی ام ال رو بر میدارم و بالای کد جاوااسکریپت میذارم جواب میده...
سلام و عرض ادب
توجه داشته باشید که مرورگر شما برای اجرای کدهای داخل صفحه بترتیب از بالا شروع می کنه به کامپایل کردن و خط به خط کدها رو تفسیر می کنه تا برسه به انتهای صفحه جاری ...
بنابراین اگر کد جاواسکریبتی نوشتید که قراره یکی از عناصر داخل صفحه رو تغییر بده، عنصر مورد نظر باید قبل از کدهای JavaScript قرار داشته باشه ...! یعنی کد جاواسکریبت جاری تا جایی که کدهای مذکور (JavaScript) قرار داره ، عناصر داخل صفحه رو می شناسه
به همین خاطر پیشنهاد می شه که همیشه کدهای JavaScript را در انتهای صفحه قرار دهید که البته از نظر Seo و موتورهای جستجو نیز موثر است.
البته کدهای جاوا اسکریپت توسط کامپایلر کامپایل نمیشن بلکه خط به خط برسی میکنه کدها رو بعد از پایان هر خط اجرا میکنه کدهارو ولی زبانایی مثه سی پلاس پلاس تموم کدها توسط کامپایلر برسی میشن از لحاظ وجود خطا بعد اجرا میشن.
به نقل از ساسان ساسان:
به نقل از 1 احسان عباسی:
خیلی طولانی میشه و یکمی پیچیده
از مدیر میهن بلاگ میپرسم شاید اون تونست این مشکل میهن بلاگ رو برطرف کنه
بازم ممنون احسان
البته کلی بزودی سوال دارم باید ببخشید دیگه
درود بر شما
من یه مشکلی در وبلاگ میهن بلاگم دارم اگر میشه راهنماییم کنید
وقتی میخوام در یک پست ، یک کد درگاه اینترنتی (مثلا پارس پال) قرار بدم ، بعد از اینکه مطلب را ارسال میکنم دیگه نمیشه ویرایشش کرد ، و وقتی میخوای ویرایشش کنی دکمه ثبت تغییرات کار نمیکنه
میشه راهنماییم کنید چطوری کد رو قرار بدم که قابل ویرایش باشه ؟
آدس وبلاگ من
www.cafesusa.ir
نمیدونم کدهارو چطور بزارم
برای قرار دادن کدها، اونا رو توی notepad کپی کنید و بعد از منوی edit گزینه ی replace رو کلیک کنید، در قسمت find what علامت کوچکتری رو بنویسید و در قسمت replace with عبارت lt& رو قرار بدید و بعد replace all رو بزنید.
برای علامت بزرگتری هم به همین ترتیب از gt& استفاده کنید، البته در آخر lt& و gt& علامت ; رو هم اضافه کنید.
بعد کد رو برای ما ارسال کنید.
برای پاسخ دادن هم به راحتی در قسمت نظرات روی "پاسخ دادن" کلیک کنید . با تشکر
سلام با تشکر از سایت خوبتون
داداش در مثال های خودتان امتحان کنید . قسمت مشاهده نتیجه برای من ارور 404 میده
قبول نکرد
یه نگاه به وبلاگم بندازین
اینجوری شد
gt&form action="http:// merchant.parspa l.com/postservi ce/" method="post" id="TransactionForm"/lt&
gt&input type="hidden" id="MerchantID" value="34560820 13" name="MerchantID"/lt&
gt&input type="hidden" id="Password" value="kelwqj2F Q" name="Password"/lt&
gt&table style="directio n:rtl;font-fami ly:tahoma; font-size:8pt" dir="rtl"lt&
gt&td class="title"lt &مبلغ مورد نظر: gt&/tdlt&
بنده عرض کردم کدها رو برای ما ارسال کنید، نگفتم که کدها رو در وبلاگتون قرار بدید.
وقتی میخوام کدهارو بفرستم مینویسه دیدگاه از حد معمول بزرگتر است
دیگه فعلا لازم نیست کدها رو ارسال کنید، از خطایی که ایجاد شد فهمیدم که شما می خواهید یک فرم رو در وبلاگ خودتون قرار بدید.. کمی صبر کنید. من دارم در میهن بلاگ این موضوع رو بررسی می کنم .
بله میخوام یک فرم پرداخت پارس پال بزارم
میشه در ارسال مطلب پست گذاشت
ولی یک مشکلی هست
وقتی میگذارم و بعدا دوباره میخوام برم ویرایش کنم اجازه نمیده
حس میکنم باید این کد رو به جاوا یا سی اس اس تبدیل کنیم یا هرچی...
تمامی درگاه هارا امتحان کردم =زرین پال ، جهان پرداخت ، پی لاین و... ولی همه اینجورن
لطفا راهماییم کنید
به نظر میرسه که به دلیل محدودیت هایی که سیستم های وبلاگ دهی ایجاد می کنند، ایجاد یک فرم در وبلاگ ها و یا به طور خاص در میهن بلاگ امکان پذیر نباشه.
اما یک سایت وجود داره که امکانات ساخت فرم رو در اختیار شما میگذاره و نحوه ی قرار دادن اون فرم رو در بلاگفا در اختیار شما قرار میدهد. برای اطلاعات بیشتر به لینک های زیر مراجعه کنید:
1. forms.freepersian.com/
2. forms.freepersian.com/blogfa.html
جوابمو نگرفتم ، متوجه منظورم نشدی
ولی بازم ممنون که پاسخ دادی احسان جان
آقا ساسان من متوجه منظورت شدم، اما کاری از دستم برنیومد که برات انجام بدهم !
حتی خودم توی یه وبلاگ که در میهن بلاگ داشتم این کار رو امتحان کردم و نتونستم فرم رو در یک مطلب قرار بدهم چون همون مشکلی که گفتی پیش میومد!
همون طور که گفتم احتمالا سیستم وبلاگ دهی برای انجام این کار محدودیت قایل شده. چرا به جای وبلاگ، از سیستم رایگان و متن باز جوملا استفاده نمی کنی؟
این طوری میتونی کدهات رو به راحتی در مطالب قرار بدهی و هیچ مشکلی هم نداری!
اگر خواستی جوملا رو نصب کنی من در خدمتت هستم .
در ضمن جالبه بدونی که سایت بیاموز با جوملا ساخته شده!
با تشکر
این کد منظورمه
cld.persiangig.com/preview/QoAJBGIrdZ/Dargah.js
یا
cld.persiangig.com/preview/3HLyELilGs/Dargahh.css
اینجوری گذاشتم که ببینیش
من چطور این رو توی "مطلب ارسالی میهن بلاگ" ارسال کنم که فراخوانی بشه ؟؟
نمیدونم منظورمو متوجه شدی یا نه
آقا ساسان به نظر من این امکان وجود نداره که توی مطلب هایتان این فرم رو قرار بدید. فقط یه راه هست. اونم اینه که کدهاتون رو توی قالب وبلاگتون در قسمت body قرار بدید. که البته در تمام صفحاتتان نمایش داده میشه. و کاربران فقط کد یک محصول رو وارد کنند و خرید کنند. راه دیگه ای به نظرم نمیرسه!
البته اگه با این کار مشکلتون حل میشه می تونیم یه استایل زیبا به این فرم بدهیم. همچنین دقت کنید که قبل از اینکه این کدها رو به قالب وبلاگتون وارد کنید از کدهای قالبتون یک کپی برای پشتیبانی بگیرید.
بعد از این کار می تونیم یک دکمه ی ثابت توی وبلاگتون طراحی کنیم تا وقتی که روی این دکمه کلیک شود، فرم پرداخت با استفاده از جی کوئری ابتدا محو باشه، و با کلیک نمایش داده شود.
سلام مجدد
میخواستم بدون آیا جایی را سراغ دارید که فضای رایگان هاست، حتی به میزان کم ارائه دهد. اگر چنین است، لطفا آدرس این سرویس دهنده و یا دهندگان را ارائه نمایید
از سایت بسیار عالی و آموزنده شما تشکر میکنم. بی اغراق شما در حرفه خود اول هستید و در آینده ....
سلام، پیشنهاد می کنم از چنین سرویس هایی استفاده نکنید. مگر اینکه برای تست و آموزش باشه ...
هاست بیاموز از hezarnevis.ir/ تهیه شده است. با توجه به پشتیبانی و سرعت بالای سرورهاشون، پیشنهاد می کنم حتماً از هزارنویس هاست خود را تهیه کنید.
در اسکریپت های خارجی میتوان کد را به این شکل هم نوشت:
< /.....script>
و دیگر نیازی به تگ پایانی نیست
خودتان امتحان کنید 2 ایراد داره:
گفته بودید که تاریخ جاری سیستم، هنگام بارگذاری صفحه، داخل عنصر با شناسه "demo" نوشته می شود
ولی در این مثال در جواب خودتان امتحان کنید تاریخ را نمی نویسد بلکه یک عبارتی را می نویسد.
ممنون، اصلاح شد.
ببخشید برای ایجاد فایل اسکریپت خارجی کد ادرس دهی رو کجا دقیقا باید بنویسم؟ باید مثل فایل css خارجی که در قسمت head در html ادرس دهی میکنیم عمل کنیم؟
همون طور که آقای پهلوان صادق فرمودند در انتهای بدنه قرار بگیرد.
یعنی انتهای بدنه تگ تگ های اچ تی ام ال در این مکان
و تگ جاوا سکریپت هم در اینجا
دلیل این کار هم به این خاطر که وقتی صفحه بارگذاری(Load) شد اول از همه المان ها یا تگ های اچ تی ام ا(HTML)
به نمایش در خواهند آمد.
دوست عزیز برای درج علامت کوچکتر در نقل قول هاتون از ;lt& و برای درج علامت بزرگتر از ;gt& استفاده کنید. نقل قول شما واضح نیست
فایل JavaScript خارجی را می توان در هر جایی از بدنه (تگ body) و یا بخش head قرار داد. اما از نظر موتورهای جستجو، بهتر است که در آخر بدنه قرار داد.
فرقی که بین نوشتن کدها در قسمت bodyوhead دارد این است . که این زبان ها به صورت مفسری می باشند و به ترتیب از بالا به پایین اجرا می شوند و وقتی که ما کدی را در قسمت head بنویسیم ؛خوب مسلم است که زودتر اجرا می شود.
بله درست است و بنده اضافه کنم که جهت بدست آوردن امتیاز یا رنک بهتر در گوگل بهتر است که کدهای JavaScript را همیشه در انتهای body قرار دهیم.
خیلی خوب بود ممنون فقط یه مشکل وجود دارد
در این صفحه وقتی روی خودتان امتحان کنید 2 کلیک میکنید به صفحه ای هدایت میشوید که با کد های خودتان امتحان کنید یکی نیست
صرفا جهت اطلاع و پیشرفت سایت شما بود
با تشکر
ممنون، اصلاح شد.
توجه: ممکن است برای تگ script خصوصیت type را تنظیم کنیم ("text/javascri pt") ولی نیاز به انجام این کار نیست، چون در تمام مرورگرها و در HTML5 زبان اسکریپت نویسی پیشفرض، JavaScript است.
بله حق با شماست، برای تگ script دیگر نیازی به تنظیم خصوصیت type نیست.