اجرای تگهای HTML در TextArea

سلام .
می خواستم بدونم که چی کار باید کرد که تگهای HTML توو TEXTAREA اجرا بشن .
مثلا وقتی من این کد رو می نویسم :
کد:
<textarea name=""><b>Majid Online</b></textarea>
به جای اینکه کلمه Majid Online زخیم بشه اینطوری نوشته می شه :
<b>Majid Online</b>
ممنون
 

3dsmax

Member
من با Microsoft Expression Web تمام تگ ها رو قرار دارم ، و زیر تگ ها خط قرمز کشید، معلومه در textarea نمیشه تگ دیگه ای قرار داد.

شما می تونید با css یا با قرار دادن دستور style با مقدار font-weight:bold این کار رو انجام بدید.

HTML:
<textarea name="" style="font-weight:bold">Majid Online</textarea>
 
آخرین ویرایش:
سلام . شدن رو که با جاوا می شه . برای مقال همین ادیتوری که توش الان دارم تایپ می کنم یا قوانینی که موقع ثبت نام توو همین سایت نمایش داده می شه از Textarea استفاده کرده و توش هم از تگ های HTML از جمله <b> استفاده کرده .
در مورد پیشنهاتون هم باید بگم که از توو پنل مدیریت توسط یه ادیتور متن توو دیتابیس ذخیره می شه و باید توو TextArea با اعمال تگهای HTML نمایش داده بشه . ممنون می شم اگه راهنمایی کنید .
 

foranyone

Well-Known Member
برا بعضی موارد میشه این مشکل رو با CSS حل کرد:

برای مثال من داخل textarea رو bold و رنگی کردم:

HTML:
<html>
<head>
<style>
textarea{
font-weight:bold; 
color:#FF8000;
}
</style>
<title></title>
</head>
<body>
<form name="" action="" method="post">
<textarea name="Name" rows=5 cols=20 wrap="off">
foranyone
</textarea>  <br />
<input type="submit" value="Send">
</form>
</body>
</html>

ولی هر کدی فکر نمی کنم بشه داخل textarea اجرا کرد

مثلا فکر نکنم روشی وجود داشته باشه که یه دکمهsubmit داخل!!! textarea قرار داد!
 

3dsmax

Member
شما اگه الان دارید در این فیلد پست می نویسید، تگ b که قرار نمی گیره ، یه دستور تعریف شده به نام که موقع نمایش با یه تابع php این علامت رو به b تبدیل می کنن و چاپ میکنن
برای اون موردی هم که گفتید ، راه حل هست، که توسط FckEditor این مشکل رفع شده ، به صورتی که وقتی متن رو drag میکونید، سپس بر روی یک دکمه به شکل b کلیک کرده و با استفاده از جاوا اسکریپت ، متن در یک text مجازی، همزمان نمایش میده...
 
شما اگه الان دارید در این فیلد پست می نویسید، تگ b که قرار نمی گیره ، یه دستور تعریف شده به نام که موقع نمایش با یه تابع php این علامت رو به b تبدیل می کنن و چاپ میکنن

خوب اگه سمت چپ ( بالا ، سمت چپ ) همین ادیتور که الان دارم توش تایپ می کنم یه دکمه هست به شکل A ، اون رو بزنم تمامی تغییرات بلافاصله اعمال می شه .
توسط FckEditor این مشکل رفع شده ، به صورتی که وقتی متن رو drag میکونید، سپس بر روی یک دکمه به شکل b کلیک کرده و با استفاده از جاوا اسکریپت ، متن در یک text مجازی، همزمان نمایش میده...
من سر ادیتور مشکل ندارم .
می گم از توو پنل مدیریت توسط یه ادیتور مدیر سایت میاد قوانین سایت رو می نویسه و بعضی جاهاشو رنگی و ضخیم می کنه و . . . ( HTML ) و توو دیتابیس Insert می شه .
من می خوام این قوانین توو یه صفحه مجزا هنگام ثبت نام کاربر توو Textarea با اعمال تگهای HTML ( همون رنگی و ضخیم که مدیر انجام داده بود ) نشون داده بشه .
 

eAmin

Well-Known Member
سلام.
یه دستور تعریف شده به نام که موقع نمایش با یه تابع php این علامت رو به b تبدیل می کنن و چاپ میکنن
به اینها می گن BBCode یکمی دربارشون جستجو کنید به نتیجه می رسید.

این یه نمونه ی ساده شاید بتونه بهتون یه کمکی بکنه!
کد:
<html>
<head>
<script type="text/javascript">

function bbCode() {
    var bb = document.getElementById("mytextarea");
    bb.value = bb.value + "[\B][\/B]";
}
</script>

</head>

<body>
    <p onclick="bbCode()">Smile</p>
    <textarea cols="30" rows="10" id="mytextarea"></textarea>

</body>
</html>
 
آخرین ویرایش:

3dsmax

Member
اره ، همون شما ، درست میگید ، من از راه دیگه استفاده می کردم نه BBCode ، ممنون:D
 

3dsmax

Member
فهمیدم منظورتون چیه اقا amirkhoshhal ، شما می خوایید ، موقع نمایش کد html در text قرار بدید، من زیاد javascript بلد نیستم، ولی با css می تونید این کارو کنید ، با کد زیر به راحتی می تونید این کارو انجام بدید.

HTML:
<div style="overflow: scroll; cursor: text; border: 1px solid rgb(153, 153, 153); padding: 5px; width: 280px; height: 200px;">
	<b>Majid Online</b>
</div>

برای چپ و راست کردن اسکرول هم می تونید از direction استفاده کنید، امیدوارم این کمکتون کنه.
 

amir_s

Active Member
ایشون می خوان فقط قسمتی از متن درون TextArea تغییر پیدا کنه.
 

nasser_ray

Member
سلام
دوست عزیز عمل شما بنوعی کلاً با تک textarea مغایرت داره. یعنی این تک برای این ساخته نشده که کار span یا div رو انجام بده. (کلاً خشکه)
سوال شما جواب نداره. ولی برای روشن شدن بهترتون یه کم در باره ادیتورهای پیشرفته تحت وب صحبت می کنیم

---------------------------
روش های مختلفی برای این کار وجود داره که بعضی ها تحت کاربر و برخی ها در هنگام نمایش، کار می کنند.
اما چون روش جاوا رو خاستین باید بگم به این عمل اجرای دستور می کن یعنی شما مثل همینجا متنی رو تایپ می کنید و با جاوا دستوری بهش می دین تا دور متن تک خاصی درج بشه.

نکته:
ادیتورهای پیشرفته وب اصلاً برای عمل مورد نظر از textarea استفاده نمی کنند بلکه از این تک فقط برای ذخیره سازی سرس کد HTML استفاده میشه [که معمولاً مخفی هستند]. ادیتورها بجای درگیری بیخود با این شیء از یک Iframe استفاده میکنند

این عمل کمی (شاید هم خیلی) پیچیده است. پیشنهاد میکنم از ادیتورهای موجود که کم هم نیستند استفاده کنید [البته اگه مسئله شما یادگیری نیست].
مثل (FCKeditor ، whizzywig و ...)

اما:
دستوری که این کار رو انجام میده (که در n حالات مختلط حداقل n خط کد میخواد) تابع :
TagX.document.execCommand(command,[ , bUserInterface ] [ , vValue ] ) ;

که در آن :
var tagName="editor"
var TagX;
if (document.all) {
TagX = frames[tagName];
} else {
TagX = document.getElementById(tagName).contentWindow;
}

حالا شما باید با کدهای بالا یه تابع بنویسید و textarea تون رو به یک iframe مربوط کنید و برعکس و ...

------------------------------
حرف دوستانه
چرا همیشه دنبال کارهای انجام نشدنی هستید. اونم وقتی که روش های بهتری وجود داره. درسته تو کامپیوتر تقریباً هیچ کار نشدنی نداریم اما نمیشه از قانون بر ضد قانون استفاده کرد. textarea ماهیتش اونه پس نمیشه تغیرش داد

خسته نباشم از سحری هم افتادم :neutral:
 

farik

Well-Known Member
با سلام خدمت دوستان عزیز..
من تو یکی از سایتهای معروف که مربوط بود به نظراتش با کدی برخوردم که صفحه رو به صورت دیزاین مود در میاورد.به این شکل:
document.designmode=true;
البته یک کد دیگه هم اون رو همراهی میکرد که به خاطر ندارم..دوستان اگکه اطلاعاتی دارم ممنون میشم یکم در مورد این کد توضیح بدن و البته این که چطور میشه از طریق یک صفحه html با جاوا اکریپت به محتویات داخل یک فریم دسترسی داشت...
با تشکرTabOTab Design
 

farik

Well-Known Member
با سلام مجئئ و عرض معذرت از اینکه 2 پست رو پشت ر هم میدم..خدمت دوست عزیزمون باید عرض کنم که در قسمت ثبت نام سایت هم از تگ div استفاده شده و با استفاده از CSS اون رو شبیه به Textare کردن...
با تشکر TabOTabDesign
 
در قسمت ثبت نام سایت هم از تگ div استفاده شده و با استفاده از CSS اون رو شبیه به Textare کردن...
خوب منم همینو می خوام دیگه . ممنون که گفتی . من فکر می کردم که TextArea هست . خیلی خیلی ممنون
 

farik

Well-Known Member
با سلام..
راستش يك چيزي پيدا كردم كه شايد بدرد شمام بخوره...
شما با استفاده از اين كد ميتونين از يك <div> به عنوان textarea استفاده كنيد كد هم اينه:
document.getElementById(id).contentEditable=true;
به جاي id بايد ايدي يك تگ دايو رو بزاريد..
با تشكرTabOTabDesign
 

جدیدترین ارسال ها

بالا