javascript'll preserve line feeds. functions below. to replace newlines
with <br/> tags when submitting, do this:

<html:form action="*.do" onSubmit="newlinesToHtml( this );">

then to convert the other way, say when editing the same content, put
this or something like it at the bottom of the page:

<script language="JavaScript">
<!--
htmlToNewlines( document.forms[0] );
//-->
</script>



function htmlToNewlines( theForm ) {
  for( var i=0; i<theForm.length; i++ ) {
    if( theForm.elements[i].type == "textarea" ) {
      theForm.elements[i-1].value =
theForm.elements[i-1].value.replace(/<br \/>/g,'\n');
    }
  }
}

function newlinesToHtml( theForm ) {
  for( var i=0; i<theForm.length; i++ ) {
    if( theForm.elements[i].type == "textarea" ) {
      theForm.elements[i-1].value =
theForm.elements[i-1].value.replace(/\n/g, '<br/>');
    }
  }
}




-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
Sent: Monday, August 02, 2004 9:24 PM
To: Struts Users Mailing List
Subject: Re: How to render html embedded in a text-area?







Looks like I went a bit over the top with the embedded html proposal.

It seems the users would be content if whatever they'd keyed into a
text-area looked the same when subsequently re-displayed as text in a
document.

ie just preserve the line-feeds, no need for bolding etc.

Any ideas?




>If you want someone to see the visualized text as they are typing, 
>you're going to need something like a "rich text" component that does 
>that sort of thing in JavaScript.  The standard HTML <textarea> element

>that Struts uses doesn't help you, even if the HTML elements are 
>literally embedded.
>
>If you are taking content and then literally embedding it in your page 
>with something like <bean:write>, you can turn off the filtering by 
>saying filter="false" in the attributes of this tag.  Be aware, 
>however, that in doing so *you* are taking responsibility for avoiding 
>cross site scripting attacks from potentially malicious users that try 
>to embed JavaScript markup.  Most likely, you'll need to scan the text 
>and only allow HTML elements that are reasonably harmless (like <b>).
>
>
>Craig

>>
>>
>> Hi All,
>>
>> I have a struts app that lets users input into text-areas. Whatever 
>> the user entered will later be displayed as text. To give users some 
>> control over presentation, I'd like to allow them to enter html 
>> directly into a text-area. Struts appears to convert all html to 
>> harmless displayable text, so that <hr> appears quite literally as 
>> '<hr>' rather than as a horizontal line.
>>
>> How can I allow users to input effective html?  And is there any way 
>> I
can
>> ring-fence what they enter, so that any html errors they make don't
bring
>> the whole page down?
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to