שלח תשובה

זירת השאלות

1146
צפיות
4
תשובות

הצגת טקסט בעזרת innerHTML

,‏ 23 בינואר, 2005

שלום לכל התותחים,

באחד מדפי הניהול של האתר שלי,
קיים שדה של עדכון נתונים לרשומה מסויימת.
השדה הוא מסוג textarea.
בשדה הזה מוזן מלל הכולל גם תגיות HTML שמוזנות ידנית.

יצרתי כפתור "תצוגה מקדימה" שמציג את הטקסט שנרשם בשדה הטקסט,
בתוך טבלת "תצוגה מקדימה", כדי שאפשר יהיה לראות כיצד הטקסט יראה בתור HTML.

כתבתי את הקוד הבא:


<textarea name="txtCourseDetailsHeb" rows="3" cols="85" dir="rtl"></textarea>
<br>
<div align="right" dir="rtl" id="detailsPreview" class="small"></div>
<input type="button" name="btnPreview" value="תצוגה מקדימה" onClick="javascript:document.getElementById('detailsPreview').innerHTML=document.frmUpdate.txtCourseDetailsHeb.innerHTML">


הבעיה היא שכשהקוד רץ,
הטקסט מוצג בדיוק כמו שהוא נרשם ב-textarea, והוא מתייחס לתגיות HTML שנרשמו בשדה, בתור תווים רגילים.

מה אני צריך לעשות, כדי שיידע לפענח את התגיות בתור תגיות HTML, ולהציג את הטקסט כראוי?

תגיות:

4 תשובות

  1. זהר פלד הגיב:

    אתה פונה לא נכון לערך של ה textArea
    תפנה אליו בתור value ולא בתור innerHTML.
    הקוד הבא עובד אצלי יופי:

        <form method="post" name="frmUpdate">
            <textarea name="txtCourseDetailsHeb" rows="3" cols="85" dir="rtl"></textarea><br>
            <input type="button" name="btnPreview" value="תצוגה מקדימה" onClick="document.getElementById('detailsPreview').innerHTML = document.frmUpdate.txtCourseDetailsHeb.value">
            </form>
    <div align="right" dir="rtl" id="detailsPreview" class="small"></div>

  2. Dj NaSh הגיב:

    מה שחסר עכשיו זה החלפת תווים…
    מעולה, זהר – תודה!

    מה שכן,
    עכשיו אני מנסה לכתוב קוד שיחליף מה-innerHTML של ה-textarea, את כל ה-chr(10) ו-chr(13) ב-<br>, בשביל התצוגה המקדימה בלבד…

    מצאתי פונקציית החלפה של תווים, אבל אני משום מה לא מצליח להגיד לה להחליף את ה-chars הספציפיים.
    איך אני פונה אליהם?

    (הניסיון הנואש שלי):


    var str = document.frmUpdate.txtCourseDetailsHeb.value
    str = replaceSubstring(str, char(13), "<br>")
    document.getElementById('detailsPreview').innerHTML = str

  3. ניר טייב הגיב:

    אל תנסה להפוך את JS ל-VBS…
    זה פשוט לא כדאי מהרבה בחינות
    ב-JS יש אאובייקט יפה מאוד שנקרא RegExp  אני מציע שתלמד אותו (יש מאמר שלי במדור JS מאמרים לבינוניים). הוא יעשה לך חיים קלים בד"כ בכל מה שקשור לניתוח טקסטים
    במקרה הזה היה צריך בסה"כ לעשות

    "strnstrnstr".replace(/n/g,"<br />");

  4. Dj NaSh הגיב:

    כמה טוב שיש עוד אנשים כמוכם… 🙂
    עזרתם לי המון! תודה!

שלח תשובה