محل قرارگیری کدهای 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>
البته از ورژن1.6.4.js استفاده میکنم همه کدها اجرا میشه .لطفا راهنماییم کنید
[dir=#555]$(document).ready(function(){
$("div").css("border", "3px solid red");
var i= $('li').size()+1;
$('#add').click(function()
{
$('' + i + '').appendTo('ul');
i++;
});[/dir]
1. ابتدا در سایت www.codepen.io ثبت نام کنید و سپس کدهای خودتان را همراه با کدهای html در داخل یک Pen ذخیره کنید و لینکش رو برای ما ارسال کنید، تا بتونیم اونها رو بررسی کنیم.
2. منظورتون از این اینکه گفتید "من از ورژن 1.6.4 از js استفاده می کنم" چیست؟ آیا منظورتون جی کوئری است؟
3. لطفا بگید دقیقا می خواهید با این کدها چه کاری رو انجام دهید، تابتونیم شما رو راهنمایی کنیم.
بله جی کوئری که استفاده می کنم فقط بعضی دستورهارو اجرا می کنه و این دستوراتی رو که نوشتم الان اجرا نمیکنه اما با استفاده از جی کوئری 1.6.4 همه این دستورها اجرا مشه. میخواستم علتشو بدونم
codepen.io/sbaloot/pen/pwwdJV?editors=1010
مزایا و معایب اضافه کردن فایل جاوا اسکریپتی به پروژه به جای استفاده استفاده از تک اسکریپت و نوشتن کدهای جاوااسکریپت در فایل HTML رو توضیح بدید لطفا و بگید توصیه شما چیه در این مورد؟
می خواستم بدونم اگه باید جاوااسکریپت رو داخل تگ اسکریپت بنویسیم پس چه طور مثلا event ها رو خارج از تگ اسکریپت در کدل dom میشه نوشت؟ مثلا وقتی می خواهیم بنویسیم:
onclick=document.getElementById('id').InnerHTML = "some text"
الان این به لحاظ مفهومی مگه جاوااسکریپت نیست؟
پس چه طور میشه بیرون تگ اسکریپت نوشتش؟
[dir=#555]<button onclick="myFunction()">Click me</button >[/dir]
در کد بالا، هنگامی که بر روی این دکمه کلیک شود، تابع ()myFunction که در داخل تگ های script تعریف شده است، فراخوانی و اجرا می شود.
چرا بعضی وقتها کدهای اچ تی ام ال رو اگه پایین کد اسکریپت بنویسیم اجرا نمیشه!؟
ولی بعد وقتی همون تیکه کد اچ تی ام ال رو بر میدارم و بالای کد جاوااسکریپت میذارم جواب میده...
توجه داشته باشید که مرورگر شما برای اجرای کدهای داخل صفحه بترتیب از بالا شروع می کنه به کامپایل کردن و خط به خط کدها رو تفسیر می کنه تا برسه به انتهای صفحه جاری ...
بنابراین اگر کد جاواسکریبتی نوشتید که قراره یکی از عناصر داخل صفحه رو تغییر بده، عنصر مورد نظر باید قبل از کدهای JavaScript قرار داشته باشه ...! یعنی کد جاواسکریبت جاری تا جایی که کدهای مذکور (JavaScript) قرار داره ، عناصر داخل صفحه رو می شناسه
به همین خاطر پیشنهاد می شه که همیشه کدهای JavaScript را در انتهای صفحه قرار دهید که البته از نظر Seo و موتورهای جستجو نیز موثر است.
خیلی طولانی میشه و یکمی پیچیده
از مدیر میهن بلاگ میپرسم شاید اون تونست این مشکل میهن بلاگ رو برطرف کنه
بازم ممنون احسان
البته کلی بزودی سوال دارم باید ببخشید دیگه
من یه مشکلی در وبلاگ میهن بلاگم دارم اگر میشه راهنماییم کنید
وقتی میخوام در یک پست ، یک کد درگاه اینترنتی (مثلا پارس پال) قرار بدم ، بعد از اینکه مطلب را ارسال میکنم دیگه نمیشه ویرایشش کرد ، و وقتی میخوای ویرایشش کنی دکمه ثبت تغییرات کار نمیکنه
میشه راهنماییم کنید چطوری کد رو قرار بدم که قابل ویرایش باشه ؟
آدس وبلاگ من
www.cafesusa.ir
نمیدونم کدهارو چطور بزارم
برای علامت بزرگتری هم به همین ترتیب از gt& استفاده کنید، البته در آخر lt& و gt& علامت ; رو هم اضافه کنید.
بعد کد رو برای ما ارسال کنید.
برای پاسخ دادن هم به راحتی در قسمت نظرات روی "پاسخ دادن" کلیک کنید . با تشکر
داداش در مثال های خودتان امتحان کنید . قسمت مشاهده نتیجه برای من ارور 404 میده
یه نگاه به وبلاگم بندازین
اینجوری شد
gt&form action="http://merchant.parspal.com/postservice/" method="post" id="TransactionForm"/lt&
gt&input type="hidden" id="MerchantID" value="3456082013" name="MerchantID"/lt&
gt&input type="hidden" id="Password" value="kelwqj2FQ" name="Password"/lt&
gt&table style="direction:rtl;font-family: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
اینجوری گذاشتم که ببینیش
من چطور این رو توی "مطلب ارسالی میهن بلاگ" ارسال کنم که فراخوانی بشه ؟؟
نمیدونم منظورمو متوجه شدی یا نه
البته اگه با این کار مشکلتون حل میشه می تونیم یه استایل زیبا به این فرم بدهیم. همچنین دقت کنید که قبل از اینکه این کدها رو به قالب وبلاگتون وارد کنید از کدهای قالبتون یک کپی برای پشتیبانی بگیرید.
میخواستم بدون آیا جایی را سراغ دارید که فضای رایگان هاست، حتی به میزان کم ارائه دهد. اگر چنین است، لطفا آدرس این سرویس دهنده و یا دهندگان را ارائه نمایید
از سایت بسیار عالی و آموزنده شما تشکر میکنم. بی اغراق شما در حرفه خود اول هستید و در آینده ....
هاست بیاموز از hezarnevis.ir/ تهیه شده است. با توجه به پشتیبانی و سرعت بالای سرورهاشون، پیشنهاد می کنم حتماً از هزارنویس هاست خود را تهیه کنید.
< /.....script>
و دیگر نیازی به تگ پایانی نیست
گفته بودید که تاریخ جاری سیستم، هنگام بارگذاری صفحه، داخل عنصر با شناسه "demo" نوشته می شود
ولی در این مثال در جواب خودتان امتحان کنید تاریخ را نمی نویسد بلکه یک عبارتی را می نویسد.
یعنی انتهای بدنه تگ تگ های اچ تی ام ال در این مکان
و تگ جاوا سکریپت هم در اینجا
دلیل این کار هم به این خاطر که وقتی صفحه بارگذاری(Load) شد اول از همه المان ها یا تگ های اچ تی ام ا(HTML)
به نمایش در خواهند آمد.
در این صفحه وقتی روی خودتان امتحان کنید 2 کلیک میکنید به صفحه ای هدایت میشوید که با کد های خودتان امتحان کنید یکی نیست
صرفا جهت اطلاع و پیشرفت سایت شما بود
با تشکر