• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشكل در تغيير يك متن!
#1
Question 
با سلام
فرض كه ما در صفحه با كد زير هستيم:
کد:
<html>
<head>
<script language="javascript">
function Bold_Fun(){
document.document.execCommand('bold',true,true);
}
</script>
</head>

<body>
<input type="button" name="bt" onclick="Bold_Fun();" value="Bold it" />
<hr />
<p>this is a test!</p>
</body>
</html>
كه پس از انتخاب قسمتي از متن داخل صفحه و با زدن كليد، متن ما به صورت پررنگ عوض مي شود. اين كا به سادگي با دستور زير كار مي كند:
کد:
document.document.execCommand('bold',true,true);
و پس از اينكه اين دستور اجرا شد متن ما به همان صورت انتخاب شده باقي مي ماند و اگر متني كه انتخاب كرده ايم داراي كدهاي html ديگري هم باشد اين كدها نيز حفظ مي شودن!
تا اينجا درست!
اما اگه بخواهيم قسمتي از متن رو تبديل به لينك كنيم مي تونيم از دستور زير استفاده كنيم:
کد:
TXT=document.selection.createRange().text;
document.selection.createRange().pasteHTML('<a href="http://example.com">'+TXT+'</a>');

مشكل من اينجاست كه در پايان دو دستور بالا براي تبديل متن به لينك اولا متن انتخاب شده از حالت انتخاب خارج خواهد شد و دوما اگر در متني كه انتخاب كرده ايم تا به لينك تبديل شود كد html
ديگري باشد اين كد نيز حذف مي شود مثلا اگر در متن انتخاب شده يه
کد:
<br/>
داشته باشيم پس ار تبديل به لينك اين تگ حذف مي شود!
خواهشا بگيد چطور متني كه از قبل انتخاب شده رو همونطور در حالت انتخاب نگه درام و با لينك شدن اين متن محتويات html اون از بين نره!
اميدوارم منظورم رو درست بيان كرده باشم
-----------------
مرسي ار همه
  پاسخ
تشکر شده توسط :
#2
يكي از دو مشكلو خودم حل كردم يعني بهتره از
کد:
TXT=document.selection.createRange().htmlText;
به جاي
کد:
TXT=document.selection.createRange().text;
استفاده كنم اما بعد از دستور
کد:
document.selection.createRange().pasteHTML('<a href="http://example.com">'+TXT+'</a>');
متن انتخاب شده از حالت انتخاب خارج ميشه و هنوز اين مشكل حل نشده.....
كسي نيست!BlushSad
  پاسخ
تشکر شده توسط :
#3
من یه موقع با این جور چیزها کار می کردم
الات توابعش رو یادم نمیاد
برای حل این مشکل باید بعد از این کار بگید این قسمت رو دوباره انتخاب کنه

البته‌ pasteHTML ‌فقط‌ توی IE جواب‌ میده
  پاسخ
تشکر شده توسط : mehdimalek
#4
(۱۳۸۸ دى ۱۱, ۰۷:۳۲ ب.ظ)admin نوشته: من یه موقع با این جور چیزها کار می کردم
الات توابعش رو یادم نمیاد
برای حل این مشکل باید بعد از این کار بگید این قسمت رو دوباره انتخاب کنه

البته‌ pasteHTML ‌فقط‌ توی IE جواب‌ میده
مرسي از جوابتون!
منم تو همين موندم كه چطور دوباره انتخابش كرد! اينقدم سرچ كردم اما چيزي كه جواب من بشه نبود
در هر صورت ممنون از جوابتونSmile
  پاسخ
تشکر شده توسط :
#5
اینو‌ مطالعه کن بهت کمک می کنه
  پاسخ
تشکر شده توسط :
#6
(۱۳۸۸ دى ۱۱, ۱۰:۳۸ ب.ظ)admin نوشته: اینو‌ مطالعه کن بهت کمک می کنه
ببخشيد ولي چيو مطالعه كنم! من لينكي چيزي نمي بينم!Huh
  پاسخ
تشکر شده توسط :
#7
اینم‌ لینک
http://www.hscripts.com/scripts/JavaScri...editor.php
  پاسخ
تشکر شده توسط : mehdimalek


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان