کار با متد getElementById و innerHTML در جاوا اسکریپت (JavaScript)
معمولا در زبان های برنامه نویسی مختلف، برخی خاصیت ها و متدها بیشتر از سایر موارد به کار می روند که می توان اصطلاح متدهای پرکاربرد را برای آنها به کار برد، در کدنویسی با جاوا اسکریپت، دو متد پرکاربرد getElementById و innerHTML جزء برجسته ترین این موارد هستند، البته عبارت متد (Method) بیشتر در برنامه نویسی شی گرا (OOP یا Object Oriented Programming) کاربرد دارد و مواردی مانند innerHTML را خاصیت (Property) می نامند، با این وجود و به جهت اینکه این موضوع (OOP) در جاوا اسکریپت چندان مصداق ندارد، به اختصار و در این آموزش به هر دو، متد خواهیم گفت، به هر صورت برای آشنایی بیشتر و جهت تکمیل دانستنی هایی که تا این لحظه آموخته ایم، با ادامه مطلب همراه ما باشید.
متد getElementById
از getElementById در جاوا اسکریپت برای تعیین یک مرجع (reference) به یک عنصر (element) با توجه به ID آن استفاده می شود، به زبان ساده یعنی انتخاب یک عنصر HTML (به فرض تگ div) با توجه به ID آن، به طور مثال اگر بخواهیم مقادیر value یک input را با توجه به ID آن استخراج کنیم، خواهیم نوشت:
<input id="test" type="text" value="1">
<script type="text/javascript">
var input = document.getElementById('test').value;
alert(input);
</script>نکته 1: همان طور که در مثال بالا مشخص است، متد getElementById خود وابسته به شی (object) دیگری به نام document است، لذا الزاما باید به همراه آن استفاده شود.نکته 2: متد getElementById نسبت به بزرگ یا کوچک بودن مقادیر ID حساس است، به طور مثال Id با id در این متد دو مقدار متفاوت هستند.
نکته 3: در هنگام استفاده از متد getElementById دقت کنید که تگ مورد نظر پیش از فراخوانی، در دسترس قرار گرفته باشد، به عبارت دیگر ابتدا باید تگ مورد نظر توسط مرورگر (و بر اساس ساختار DOM یا نمودار درختی تگ ها از بالاترین قسمت صفحه به پائین) پردازش شود و سپس بتوان عملیاتی روی آن انجام داد، به فرض حالت زیر اشتباه است و خطای TypeError: document.getElementById(...) is null را دریافت خواهید کرد.
<script type="text/javascript">
var input = document.getElementById('test').value;
alert(input);
</script>
<input id="test" type="text" value="1">علت خطا در مثال بالا این است که پیش از پردازش تگ input مورد نظر، آن را در دستورات جاوا اسکریپت فراخوانی کرده ایم، در صورت نیاز می توانید این مشکل را با استفاده از window.onload (این رویداد زمانی اجرا می شود که صفحه به طور کامل بارگذاری شده باشد) برطرف کنید:<script type="text/javascript">
window.onload = function(){
var input = document.getElementById('test').value;
alert(input);
}
</script>
<input id="test" type="text" value="1">متد innerHTML
از innerHTML در جاوا اسکریپت برای دریافت یک مقدار از درون تگ های HTML یا اختصاص دادن یک مقدار به تگ ها و تغییر محتوای آنها استفاده می شود، به مثال زیر توجه کنید.
<script type="text/javascript">
function SetValue(id){
var element = document.getElementById(id);
//دریافت مقادیر از عنصر مورد نظر
var value = element.innerHTML;
alert(value);
}
</script>
<input type="button" onclick="SetValue('result');" value="کلیک کنید">
<div id="result">این یک تست است</div>همان طور که اشاره شد، کاربرد innerHTML محدود به دریافت یک مقدار نیست و می توان برای اختصاص مقادیر به عناصر HTML از آن استفاده کرد، به مثال زیر توجه کنید.<script type="text/javascript">
function SetValue(id, value){
var element = document.getElementById(id);
//اختصاص مقدار به عنصر مورد نظر
element.innerHTML = value;
}
</script>
<input type="button" onclick="SetValue('result', 'این یک تست است');" value="کلیک کنید">
<div id="result"></div>نکته 1: همان طور که ملاحظه می کنید innerHTML وابسته به متد و آبجکت پیش از خود (document و getElementById) است.نکته 2: استفاده از متد innerHTML برای تغییر محتوای یک عنصر والد (parent) باعث حذف تگ های فرزند (child) آن نیز می شود، به فرض اگر درون تگ div از چند تگ تو در تو استفاده شده باشد، با به کار بردن innerHTML برای تگ والد، محتوای آن هر چه باشد (شامل تگ های div تو در تو) حذف و با مقادیر جدید جایگزین می شود.
نکته 3: برای دریافت مقادیر از تگ input یا تغییر محتوای آن، باید از متد value به جای innerHTML استفاده شود.
مثال و پیش نمایش آنلاین
برای آشنایی بیشتر با کاربردهای getElementById و innerHTML در جاوا اسکریپت، چند مثال کاربردی را همراه با پیش نمایش آنلاین در زیر بررسی می کنیم.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>وبگو | کاربرد متد getElementById و innerHTML</title>
<!-- https://webgoo.ir -->
<style type="text/css">
body{
font-family:Tahoma, Geneva, sans-serif;
font-size:12px;
direction:rtl;
line-height:20px;
}
#text-box{
padding:6px;
background:#CCC;
}
#test-block{
padding:6px;
background:#CCF;
cursor:pointer;
}
</style>
</head>
<body>
<noscript>
جاوا اسکریپت در مرورگر شما غیر فعال است یا پشتیبانی نمی شود!<br>
</noscript>
<input id="test" type="text" value="یک مقدار وارد کنید">
<input type="button" value="کلیک کنید" onclick="AlertValue('test');">
<script type="text/javascript">
function AlertValue(id){
var value = document.getElementById(id).value;
alert(value);
}
</script>
<br><br>
آرگومان متد getElementById همان id عنصر HTML مورد نظر است.
<hr><br>
<div id="text-box">پس از کلیک بر روی دکمه تغییر رنگ و اجرای تابع ChangeColor، با استفاده از متد getElementById و style رنگ پس زمینه این بلاک تغییر می کند!</div><br>
<input type="button" value="تغییر رنگ" onclick="ChangeColor('text-box');">
<input type="button" value="رنگ پیش فرض" onclick="DefaultColor('text-box');">
<script type="text/javascript">
function ChangeColor(id){
var block = document.getElementById(id);
block.style.backgroundColor = "#FC0";
}
function DefaultColor(id){
var block = document.getElementById(id);
block.style.backgroundColor = "#CCC";
}
</script>
<hr><br>
<input id="text-input" type="text" onkeyup="InnerChange(this.id);"><br>
<div id="inner-text"></div>
<script type="text/javascript">
function InnerChange(id){
var element = document.getElementById(id);
var value = element.value;
document.getElementById('inner-text').innerHTML = value;
}
</script>
<br><br>
پس از تایپ عبارت در فیلد بالا، رویداد onkeyup اجرا شده و تابع InnerChange فراخوانی می شود، در این مثال از متد innerHTML استفاده کرده ایم.<br>
نکته: با استفاده از عبارت کلیدی this.id می توانید به صورت خودکار id بلاک یا تگ input مورد نظر را به کدهای خود بدهید.
<hr><br>
<div id="test-block" onclick="GetText(this.id);">این یک متن آزمایشی است!</div>
<script type="text/javascript">
function GetText(id){
var element = document.getElementById(id);
var text = element.innerHTML;
alert(text);
}
</script>
<br><br>
برای دریافت متن داخل بلاک div با استفاده از متد innerHTML، در داخل کادر رنگی بالا کلیک کنید.
</body>
</html>پیش نمایشدسته بندی: آموزش مقدماتی » JavaScript
برچسب ها: JavaScript
« بعدی
آرایه (Array) در جاوا اسکریپت (JavaScript)
عملگرها (Operators) در جاوا اسکریپت (JavaScript)
متدهای کار با آرایه در جاوا اسکریپت (JavaScript)
شروعی بر برنامه نویسی جاوا اسکریپت (JavaScript)
توابع (Functions) در جاوا اسکریپت (JavaScript)
دیدگاه
محسن
۱۰:۳۲ ۱۳۹۳/۰۵/۱۸
سلام و عرض ادب
این روش هم جواب نداد چون زمانی که کاربر روی اینپوت ال کلیک میکنه تازه جعبه رنگ باز میشه و هنوز مقدار رنگ عوض نشده.
من خودم با این روش تونستم مشکل رو کاملا برطرف کنم:
باز هم از تلاش بی وقته شما سپاسگزام
موفق باشید
این روش هم جواب نداد چون زمانی که کاربر روی اینپوت ال کلیک میکنه تازه جعبه رنگ باز میشه و هنوز مقدار رنگ عوض نشده.
من خودم با این روش تونستم مشکل رو کاملا برطرف کنم:
<script type="text/javascript">
function ChangeColor(){
document.getElementById(message).style.color = document.getElementById('cooloor').value;
}
</script>
<input class="color" name="color" id="cooloor" value="000000" /><br />
<input type="text" id="text-box" id="message" name="message" onclick="ChangeColor('')" maxlength="150" placeholder="متن خود را بنویسید ..." />چون بعد از انتخاب رنگ کاربر تازه میاد داخل اینپوت دوم کلیک میکنه تا متن رو تایپ کنه پس فراخوانی فانکشن رو گذاشتم روی کلیک داخل اینپوت دوم.باز هم از تلاش بی وقته شما سپاسگزام
موفق باشید
سلام
دقیقا نمی دانیم هدفتان چه حالتی بوده، صرفا کدها بررسی و رفع اشکال شدند.
دقیقا نمی دانیم هدفتان چه حالتی بوده، صرفا کدها بررسی و رفع اشکال شدند.
محسن
۱۰:۳۸ ۱۳۹۳/۰۵/۱۶
سلام و عرض ادب مجدد
بنده همین کار رو کردم اما متاسفانه جواب نمیده
یعنی در مورد رنگ پس زمینه جواب میده ها ولی در مورد رنگ متن جواب نمیده
این نمونه کدم:
بنده همین کار رو کردم اما متاسفانه جواب نمیده
یعنی در مورد رنگ پس زمینه جواب میده ها ولی در مورد رنگ متن جواب نمیده
این نمونه کدم:
<script type="text/javascript">
function ChangeColor(id){
var newcolor = document.getElementById('cooloor').value;
var block = document.getElementById(id);
block.style.color = "#"+newcolor;
}
</script>
<input class="color" name="color" id="cooloor" value="000000" onclick="ChangeColor('text-box');" /><br />
<input type="text" id="text-box" name="message" maxlength="150" placeholder="متن خود را بنویسید ..." />سلام
کد شما اصلاح شد!
کد شما اصلاح شد!
محسن
۲۱:۰۱ ۱۳۹۳/۰۵/۱۴
سلام و عرض ادب
با تشکر از زحمات شما.
بنده یک سوال داشتم.
من دو تا input رو کنار هم گذاشتم یکی مربوط به color هست و یکی دیگه هم مربوط به تایپ متن.
وقتی روی input اول کلیک میشه جعبه رنگ باز میشه.
میخوام وقتی کاربر رنگی رو انتخاب کرد اتوماتیک رنگ متنی که قرار هست در input دوم تایپ کنه تغییر پیدا کنه.
امیدوارم بدرستی منظورم رو رسونده باشم.
با تشکر از زحمات شما.
بنده یک سوال داشتم.
من دو تا input رو کنار هم گذاشتم یکی مربوط به color هست و یکی دیگه هم مربوط به تایپ متن.
وقتی روی input اول کلیک میشه جعبه رنگ باز میشه.
میخوام وقتی کاربر رنگی رو انتخاب کرد اتوماتیک رنگ متنی که قرار هست در input دوم تایپ کنه تغییر پیدا کنه.
امیدوارم بدرستی منظورم رو رسونده باشم.
با کلیک کاربر بر روی یک رنگ (که باید خودتان باکس آن را طراحی کنید) یک تابع را فراخوانی کرده و رنگ مورد نظر را به عنوان آرگومان به تابع بدهید، سپس در تابع با استفاده از متد document.getElementById به صورت نمونه زیر رنگ فیلد را با اختصاص ID آن تغییر دهید.
document.getElementById("id").style.color="#ff0000";مرتضی
۱۹:۲۴ ۱۳۹۳/۰۴/۲۲
سلام
من میخوام با getElementsByTagName به استایل دسترسی پیدا کنم و خصوصیت display رو تغییر بدم. (با getElementById میشه اما با getElementsByTagName رو نمیدونم) لطفا راهنمایی کنین
من میخوام با getElementsByTagName به استایل دسترسی پیدا کنم و خصوصیت display رو تغییر بدم. (با getElementById میشه اما با getElementsByTagName رو نمیدونم) لطفا راهنمایی کنین
سلام
نتیجه متد getElementsByTagName به صورت آرایه برگردانده می شود، لذا برای مدیریت آن باید بر اساس قانون آرایه ها رفتار نمود، یک نمونه کد:
نتیجه متد getElementsByTagName به صورت آرایه برگردانده می شود، لذا برای مدیریت آن باید بر اساس قانون آرایه ها رفتار نمود، یک نمونه کد:
<script type="text/javascript">
function hideIt(tag, num){
var elm = document.getElementsByTagName(tag);
if(num == 0){
for(var i = 0; i < elm.length; i++){
elm[i].style.display = 'none';
}
}
else{
elm[num - 1].style.display = 'none';
}
}
</script>
<div>1</div>
<div>2</div>
<div>3</div>
<input type="button" value="hide All" onclick="hideIt('div', 0);">
<input type="button" value="hide 1" onclick="hideIt('div', 1);">
<input type="button" value="hide 2" onclick="hideIt('div', 2);">
<input type="button" value="hide 3" onclick="hideIt('div', 3);">محسن
۱۰:۳۶ ۱۳۹۳/۰۴/۱۰
سلام
همانطور که میدونیم برای ساخت یک گره جدید در صفحه باید از دستور
مشکل من اینه که وقتی اینو میندازم تو یه تابع با فراخونی تابع یک پاراگراف در صفحه ایجاد نمیشه!!! یا میشه خیلی زود حذف میشه!! این کد منه خیلی ساده است ببینین مشکلش کجاست!!
دو رورزه منو الاف خودش کرده
همانطور که میدونیم برای ساخت یک گره جدید در صفحه باید از دستور
document.createElement('div')در جاوا اسکریپت استفاده کرد!مشکل من اینه که وقتی اینو میندازم تو یه تابع با فراخونی تابع یک پاراگراف در صفحه ایجاد نمیشه!!! یا میشه خیلی زود حذف میشه!! این کد منه خیلی ساده است ببینین مشکلش کجاست!!
<html>
<head>
<script>
function hi(){
window.document.createElement('div');
}
</script>
</head>
<body>
<input type="button" onclick="hi()" value="sakht"/>
</body>
</html>اصلا چرا این کد به این سادگی کار نمیکنه!!!؟؟؟؟دو رورزه منو الاف خودش کرده
سلام
دستورات شما ناقص است، نمونه کامل شده کد شما:
دستورات شما ناقص است، نمونه کامل شده کد شما:
<script type="text/javascript">
function hi(){
var div = document.createElement('div');
div.style.width = "50px";
div.style.height = "50px";
div.style.background = "red";
div.style.color = "white";
div.innerHTML = "Hello!";
document.body.appendChild(div);
}
</script>۱۱:۲۷ ۱۳۹۳/۰۴/۰۶
مرسی... ممنون... بازم وب گو عالی بود...
۱۳:۲۰ ۱۳۹۳/۰۳/۳۰
تو جاوا اسکریپت می شود یک فایل رو مانند php باز کرد و تغیرات دلخواه رو روی آن انجام داد؟ به جز کوکی!!
خیر! این کار مشکل امنیتی برای کاربران ایجاد می کند، چون جاوا اسکریپت یک زبان سمت کاربر است و در مرورگر کاربر اجرا می شود، تنها می توانید با روش های میانجی مانند Ajax و PHP، فایل را از سرور فراخوانی کنید.
۱۹:۲۸ ۱۳۹۳/۰۳/۲۹
ببخشید که اینقدر سوال می کنم. اگه متغیر رو توی یه کدی تغییر بدیم مثلا تو نوت پد نوشتیم و html رو اجرا کردیم کد مربوطه اجرا شده و متغیر تغییر کرد. این تغییر برای همیشه است. یعنی اگر دوباره فایل را باز کنیم از اول شروع می کند. یعنی اگر متغیر 1 بود و با کد 2 شد همیشه 2 میشه یا با reload کردن مجددا متغیر 1 میشه؟ بد جور نوشتم چون خیلی سخته!!
در جاوا اسکریپت تغییرات در صفحه مرورگر و در لحظه اتفاق می افتد و همیشگی نیست (مگر اینکه مقدار را در یک کوکی ایجاد کنید که تا زمان اتقضای کوکی می توان از آن استفاده کرد)، به عبارتی متغیرهای جاوا اسکریپت با یک مقدار اولیه تنظیم می شوند و در صورت تغییر مقدار (به فرض با کلیک کاربر و بروز یک رویداد)، تنها تا زمانی که صفحه رفرش نشده اعتبار دارد، با رفرش مجددا اطلاعات اولیه بارگذاری می شود.
۱۴:۵۶ ۱۳۹۳/۰۳/۲۹
خوب بود اما می توان با آن ها یک var رو در جاوا تغییر داد؟ منظورم مقدار var.
متغیر یا همان var به روش های مختلف می تواند مقداردهی شود، به طور مثال می توان مقدار یک عنصر را با innerHTML دریافت کرد و با علامت = آن را به var مورد نظر نسبت داد (این شیوه ای متداول در جاوا اسکریپت است)، به عبارتی متدهای گفته شده صرفا مقدار را دریافت یا مقدار موجود را به یک تگ ارسال می کنند، اینکه از مقدار دریافتی چگونه استفاده کنیم بستگی به هدف ما دارد (که به فرض با یک = می توان مقدار را به یک متغیر نسبت داد).
محسن
۰۱:۲۵ ۱۳۹۳/۰۳/۲۹
سلام
من یه کدی نوشتم که در واقع با لود صفحه به طور خودکار روی یک عنصر توسط مرورگر کلیک شود!
البته بگم که این کار رو با greasemonkey کردم!
دوست عزیز این اسکریپت در مرورگر فایرفاکس من کار می کند ولی وقتی این اسکریپت رو روی کروم میندازم اکثر اوقات خود مرورگر جلوی کلیک رو میگیره!!! یعنی نمیزاره که خودکار رو اون عنصر کلیک شه!
قبلا اگه اشتباه نکنم pup-up رو روی فایرفاکس فعال کرده بودم و این کار روی فایرفاکس انجام میشد! ولی من میخوام این اسکریپت روی کروم اجرا بشه! چون به نظر من کروم سرعتش بالاتره! ولی متاسفانه نمیدونم باید چیکار کنم که مرورگر بزاره این اسکریپت که همون کلیک خودکار هست انجام بشه!
نصبش رو کروم رو بلدم ولی همونطور که گفتم اشکال کار از اجرا نشدن اون هست!
یعنی رو فایرفاکس کار میکنه رو کروم کار نمیکنه اکثر اوقات!
میشه یه راهنمایی کنید که باید چیکار کنم مرورگر رو این قضیه حساس نباشه؟
البته بگم که pop-up رو غیر فعال کرد مثل فایرفاکس ولی اینجا این روش کار نمیکنه!!
چه کنیم؟؟؟
من یه کدی نوشتم که در واقع با لود صفحه به طور خودکار روی یک عنصر توسط مرورگر کلیک شود!
البته بگم که این کار رو با greasemonkey کردم!
دوست عزیز این اسکریپت در مرورگر فایرفاکس من کار می کند ولی وقتی این اسکریپت رو روی کروم میندازم اکثر اوقات خود مرورگر جلوی کلیک رو میگیره!!! یعنی نمیزاره که خودکار رو اون عنصر کلیک شه!
قبلا اگه اشتباه نکنم pup-up رو روی فایرفاکس فعال کرده بودم و این کار روی فایرفاکس انجام میشد! ولی من میخوام این اسکریپت روی کروم اجرا بشه! چون به نظر من کروم سرعتش بالاتره! ولی متاسفانه نمیدونم باید چیکار کنم که مرورگر بزاره این اسکریپت که همون کلیک خودکار هست انجام بشه!
نصبش رو کروم رو بلدم ولی همونطور که گفتم اشکال کار از اجرا نشدن اون هست!
یعنی رو فایرفاکس کار میکنه رو کروم کار نمیکنه اکثر اوقات!
میشه یه راهنمایی کنید که باید چیکار کنم مرورگر رو این قضیه حساس نباشه؟
البته بگم که pop-up رو غیر فعال کرد مثل فایرفاکس ولی اینجا این روش کار نمیکنه!!
چه کنیم؟؟؟
سلام
کلیک خودکار جزء حریم خصوصی و حفظ امنیت کاربران است که مرورگرها در حالت پیش فرض معمولا جلوی آن را می گیرند، ضمن اینکه افزونه greasemonkey مربوط به فایرفاکس است و متاسفانه اطلاع نداریم که در کروم صددرصد عمل می کند یا خیر! (در کل این سوال بیشتر به بحث مرورگرها مربوط است تا جاوا اسکریپت).
کلیک خودکار جزء حریم خصوصی و حفظ امنیت کاربران است که مرورگرها در حالت پیش فرض معمولا جلوی آن را می گیرند، ضمن اینکه افزونه greasemonkey مربوط به فایرفاکس است و متاسفانه اطلاع نداریم که در کروم صددرصد عمل می کند یا خیر! (در کل این سوال بیشتر به بحث مرورگرها مربوط است تا جاوا اسکریپت).
۱۹:۱۵ ۱۳۹۳/۰۳/۲۶
یه استایل خارجی درست کردم برای چند تا تگ یه سری ویژگی بهشون نسبت دادم مثلا تگ عکس سایزش کوچیک چه و سایر تگ های فونت رنگ شون و اندازشون تغییر کنه
اگه میشه یه تگ کد جاوا اسکریپت میخوام که وقتی کاربر روش کلیک کرد استایل های بالا روشون اعمال بشه
ممنون میشم
اگه میشه یه تگ کد جاوا اسکریپت میخوام که وقتی کاربر روش کلیک کرد استایل های بالا روشون اعمال بشه
ممنون میشم
باید استایل ها را به صورت یک کلاس CSS تعریف و با کلیک بر روی یک دکمه (یا هر تگی که قابلیت اختصاص رویداد را داشته باشد)، با جاوا اسکریپت کلاس مورد نظر را به تگ هدف (با استفاده از ID آن) نسبت دهید، مثال:
<style type="text/css">
.test{
font-family:Tahoma, Geneva, sans-serif;
color:#F00;
}
</style>
<script type="text/javascript">
function changeJS(id, class){
document.getElementById(id).className = class;
}
</script>
<div id="block">متن آزمایشی</div>
<input type="button" onclick="changeJS('block', 'test');" value="Click!">محسن
۰۱:۰۱ ۱۳۹۳/۰۳/۱۲
با سلام دوست عزیز
در جاوا اسکریپت میشه مثلا با دستور زیر یک تابع رو در زمان لود شدن کامل صفحه اجرا کرد!
امکانش هست اصلا همچین چیزی؟؟؟
سریع تر لطفا پاسخ بدهید
با تشکر از شما و سایت خوبتان!
یه دنیا تشکر
در جاوا اسکریپت میشه مثلا با دستور زیر یک تابع رو در زمان لود شدن کامل صفحه اجرا کرد!
window.onload=function hi();ایا میشه مثلا کاری کرد که وقتی یه عنصری خاص وقتی لود شد این تابع فراخوانی بشه (بدون لود شدن کل صفحه و برای سریع تر شدن فرایند)؟؟؟امکانش هست اصلا همچین چیزی؟؟؟
سریع تر لطفا پاسخ بدهید
با تشکر از شما و سایت خوبتان!
یه دنیا تشکر
سلام
پاسخ کوتاه: خیر
توضیح: این امکان در مرورگرها وجود دارد که به یک عنصر (مانند تصویر)، رویداد اختصاص دهید، مثال:
پاسخ کوتاه: خیر
توضیح: این امکان در مرورگرها وجود دارد که به یک عنصر (مانند تصویر)، رویداد اختصاص دهید، مثال:
<script type="text/javascript">
var image = document.getElementById("image");
if(image.addEventListener){
image.addEventListener('load', function(){
alert('addEventListener');
});
}
else{
//IE
image.attachEvent('onload', function(){
alert('attachEvent');
});
}
</script>البته تا آنجا که اطلاع داریم، این شیوه خیلی دقیق عمل نمی کند و در مرورگرهای مختلف یک رفتار ثابت وجود ندارد!sajad
۲۳:۳۵ ۱۳۹۳/۰۲/۳۱
بازم شرمنده که مزاحم شدم می خوام مقداری که این کد جاوااسکریپت روی صفحه چاپ می کنه رو بریزم توی یک textbox
<script src="http://jalali.toolsir.com/date.class.php?timestamp=&zone=Asia/Tehran&lang=fa&date=n-j" type="text/javascript"></script>برای این فایل می توانید از نمونه کد زیر استفاده کنید:
<script type="text/javascript">
function setText(output, input){
var text = document.getElementById(output).innerHTML;
text = text.replace(/<script src="(.*)" type="text\/javascript">(.*)<\/script>/gi, '$2');
document.getElementById(input).value = text;
}
</script>
<input type="text" id="test" style="width:500px;">
<input type="button" onclick="setText('example', 'test');" value="دریافت مقادیر">
<div id="example">
<script src="http://jalali.toolsir.com/date.class.php?timestamp=&zone=Asia/Tehran&lang=fa&date=n-j" type="text/javascript"></script>
</div>نکته: این نمونه کد صرفا با توجه به خروجی همین دستورات نوشته شده و برای موارد دیگر باید ویرایش شود.sajad
۲۲:۰۵ ۱۳۹۳/۰۲/۳۱
سلام میخواستم ببینم میشه متون یک صفحه رو که با جاوااسکریپت روی صفحه چاپ شده رو به داخل یک inputbox ارسال کرد یا خیر؟
سلام
بله، اما برای راهنمایی جزئیات بیشتری نیاز است، به طور مثال اگر متن داخل یک بلاک div چاپ شده، می توان با متد getElementById و innerHTML مقادیر آن را دریافت و با value به فیلد متنی مورد نظر نسبت داد.
بله، اما برای راهنمایی جزئیات بیشتری نیاز است، به طور مثال اگر متن داخل یک بلاک div چاپ شده، می توان با متد getElementById و innerHTML مقادیر آن را دریافت و با value به فیلد متنی مورد نظر نسبت داد.
reza
۰۸:۳۷ ۱۳۹۳/۰۲/۳۱
سلام ببخشید کدی هست که بتونیم مقدار یک صفحه وب خودمون رو در حافظه ی Clipboard کپی و در یک textbox موجود در همان صفحه paste کرد؟
تشکر
تشکر
سلام
انجام این کار در وب به لحاظ امنیتی ممکن نیست، می توانید از روش های جایگزین مانند استفاده از میانبر (Ctrl + C) صفحه کلید استفاده کنید، یعنی یک دکمه برای حالت Select All طراحی کنید و پس از آن، به طور مثال یک پیام به کاربر نشان دهید که برای کپی از دکمه های Ctrl و C استفاده کند!
انجام این کار در وب به لحاظ امنیتی ممکن نیست، می توانید از روش های جایگزین مانند استفاده از میانبر (Ctrl + C) صفحه کلید استفاده کنید، یعنی یک دکمه برای حالت Select All طراحی کنید و پس از آن، به طور مثال یک پیام به کاربر نشان دهید که برای کپی از دکمه های Ctrl و C استفاده کند!
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.