PDA

View Full Version : نمایش متن طولانی در جاوا اسکریپت



EDRIS0131
سه شنبه 27 بهمن 1394, 07:59 صبح
با عرض سلام خدمتون همه بزرگواران و اساتید گرامی

درکنار برنامه نویسی اندروید تصمیم دارم جاوا اسکریپت رو هم یاد بگیرم
البته به آسونی اچ تی ام ال نیست انگار L
با اینکه خیلی جاها انگار هنوز جاوا اسکریپت با اندروید همخونی نداره و پشتیبانی نمیشه
قبل از گفتن مشکلمم بگم که خوب یا بد عادت دارم با هر قسمتی که یاد میگیرم یه برنامه بسازم اگه اینطوری پیش نرم واسم خسته کننده میشه
اولین باری که جاوا اسکریپت رو یاد گرفتم یه کد نوشتم که محاسبات ضلع های مثلثات رو برام انجام میداد(تو رشتم ک عمرانه خیلی مفیده)
حالا هم با دستورات if و else و...آشنا شدم
همین ابتدای کار یه سوال برام پیش امده که نمیذاره برنامم رو بنویسم

مشکل:
به عکس توجه کنید
139105

من نیاز دارم که جاوا اسکریپت بعد از دریافت alert برای من یه متن طولانی رو بنویسه
تو متن های کوتا انگار مشکلی نداره و میشه از کد های اچ تی ام ال توش استفاده کرد
(مثل عکس زیر)

139106

همینطور که در عکس میبینید به راحتی جاوا اسکریپت یه متن رو با کدهای اچ تی ام ال برام نوشت
ولی خوب اگر از enter تو متن استفاده بشه دیگه خطا میده
(مثل عکس زیر)
پس امکان past کردن یک متن نیست

139107دوستان راه حلی هست که این مشکل رو حل کنه؟

برای این که بعد از اینکه از alert عدد رو گرفت و دید کوچیکتر از عدد خواسته شده است بره یه صفحه جدید رو باز کنه- یه صفحه html جدید رو باز کنه و نیاز نداشته باشم که یه متن طولانی رو داخل
document.write (“ “)
بنویسم
ایا باید از فرمان دیگری برای باز کردن یه new html page استفاده کنم؟
البته از این فرمان بلدم برای باز کردن یه ادرس جدید استفاده کنم
<meta http-equiv="refresh" content="3; url=www.facesky.ir" >
فکر کنم باید از فرمانی مثل open به جای write استفاده کرد؟ ولی چطوری؟
به هر حال این فرمان هم به درد من نمیخوره چون این مطلبی که قراره تو داکیومنت بعد از دریافت آلرت نوشته بشه تکمیل کننده متن کلی من هست و باید در همون صفحه html من این متن طولانی نوشته بشه.
همچنین نیاز دارم داکیومنتم یه عکس رو هم نشون بده که نمیشه
دوستان ممنون میشم راهنماییم کنید

EDRIS0131
سه شنبه 27 بهمن 1394, 22:15 عصر
دوستان کسی نیست راهنمایی کنه؟

EDRIS0131
پنج شنبه 29 بهمن 1394, 19:53 عصر
به روز رسانی مجدد..........

SCoder
جمعه 30 بهمن 1394, 04:22 صبح
دوست عزیز استفاده از فرمان document.write دیگر منسوخ شده و به ندرت از آن استفاده میشود به ویژه که اگر بعد از لود شدن تمام صفحه اگر این دستور نوشته شود تمام صفحه را پاک خواهد کرد ولی تا آنجا که من متوجه شدم می خواهید یک متن طولانی در document.write بنویسید پس میتوانید در بهترین حالت ممکن برای افزایش خوانایی برنامه از یک متغییر برای نگه داشتن متن بهره بگیرید ولی باز هم بهتر است از dom برای وارد کردن متن و یا عکس و غیره بهره ببرید نه document.write ...
موفق باشید ...



var txt = "this is my very long long text that needs to be on several lines<br>";
txt += " <img src='' width='128' height='128' alt='' />\n<br>";
txt +="but this is not a good choice to use document.write";
document.write(txt);

EDRIS0131
جمعه 30 بهمن 1394, 06:39 صبح
; ممنون دوست گرامی از راهنمایی هاتون
ولی متاسفانه منظور من اینطور نبود
من میخوام یه متن رو کپی/پیست کنم , اینطوری باید برای هر خط از متن یه text+ نوشت :(
من میخوام مثل عکس زیر باشه که نشون نمیده...
139170

SCoder
جمعه 30 بهمن 1394, 13:54 عصر
همانطور که گفتم بهتر است از dom استفاده کنید و با css به آن box حاوی متن شکل بدهید به عنوان مثال یک p بوجود بیاورید و سپس متن را در innerText یا innerHTML آن بریزید ...
و برای enter خوردن در متن html باید از تگ <br> استفاده کنید و گرنه اگر 100 بار enter هم بزنید متن یک خط به پایین نمی آید و در ادامه متن قبل نوشته می شود .
ولی اگر بخواهی هر enter که میزنی یا \n تبدیل به enter در html بشه باید یه تابع بنویسی و تمام متن رو با اون تابع برای newline جستجو کنی و ان ها رو با تگ <br> جا به جا کنی ..




var p = document.createElement('p');
p.innerHTML = 'this is some text on diffrent lines <br>'+
'this is on another line ';
document.body.appendChild(p);




این کا را هم میتوانی انجام بدهی ...


var a = 'this is line one \n'+
'this is on line two';
var p = '<br>';//in this '' is br tag i write this here because this site
//remove this tag(<br>) if i write it in replace (this is wierd !)
a.replace(/\r\n|\r|\n/g,p);