<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: textarea code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 08 Aug 2008 17:46:34 GMT</pubDate>
    <description>DZone Snippets: textarea code</description>
    <item>
      <title>Selection //JavaScript Class</title>
      <link>http://snippets.dzone.com/posts/show/4620</link>
      <description>&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jsfromhell.com/forms/selection"&gt;&lt;br /&gt;Retrieves and sets the cursor position, as well the selected text of inputs and textareas. After searching, I saw it's the only code which retrieves right information in textareas under Internet Explorer without damaging the "Ctrl+Z"&lt;br /&gt;&lt;br /&gt;[UPDATED CODE AND HELP CAN BE FOUND HERE]&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//+ Jonas Raoni Soares Silva&lt;br /&gt;//@ http://jsfromhell.com/forms/selection [v1.0]&lt;br /&gt;&lt;br /&gt;Selection = function(input){&lt;br /&gt;	this.isTA = (this.input = input).nodeName.toLowerCase() == "textarea";&lt;br /&gt;};&lt;br /&gt;with({o: Selection.prototype}){&lt;br /&gt;	o.setCaret = function(start, end){&lt;br /&gt;		var o = this.input;&lt;br /&gt;		if(Selection.isStandard)&lt;br /&gt;			o.setSelectionRange(start, end);&lt;br /&gt;		else if(Selection.isSupported){&lt;br /&gt;			var t = this.input.createTextRange();&lt;br /&gt;			end -= start + o.value.slice(start + 1, end).split("\n").length - 1;&lt;br /&gt;			start -= o.value.slice(0, start).split("\n").length - 1;&lt;br /&gt;			t.move("character", start), t.moveEnd("character", end), t.select();&lt;br /&gt;		}&lt;br /&gt;	};&lt;br /&gt;	o.getCaret = function(){&lt;br /&gt;		var o = this.input, d = document;&lt;br /&gt;		if(Selection.isStandard)&lt;br /&gt;			return {start: o.selectionStart, end: o.selectionEnd};&lt;br /&gt;		else if(Selection.isSupported){&lt;br /&gt;			var s = (this.input.focus(), d.selection.createRange()), r, start, end, value;&lt;br /&gt;			if(s.parentElement() != o)&lt;br /&gt;				return {start: 0, end: 0};&lt;br /&gt;			if(this.isTA ? (r = s.duplicate()).moveToElementText(o) : r = o.createTextRange(), !this.isTA)&lt;br /&gt;				return r.setEndPoint("EndToStart", s), {start: r.text.length, end: r.text.length + s.text.length};&lt;br /&gt;			for(var $ = "[###]"; (value = o.value).indexOf($) + 1; $ += $);&lt;br /&gt;			r.setEndPoint("StartToEnd", s), r.text = $ + r.text, end = o.value.indexOf($);&lt;br /&gt;			s.text = $, start = o.value.indexOf($);&lt;br /&gt;			if(d.execCommand &amp;&amp; d.queryCommandSupported("Undo"))&lt;br /&gt;				for(r = 3; --r; d.execCommand("Undo"));&lt;br /&gt;			return o.value = value, this.setCaret(start, end), {start: start, end: end};&lt;br /&gt;		}&lt;br /&gt;		return {start: 0, end: 0};&lt;br /&gt;	};&lt;br /&gt;	o.getText = function(){&lt;br /&gt;		var o = this.getCaret();&lt;br /&gt;		return this.input.value.slice(o.start, o.end);&lt;br /&gt;	};&lt;br /&gt;	o.setText = function(text){&lt;br /&gt;		var o = this.getCaret(), i = this.input, s = i.value;&lt;br /&gt;		i.value = s.slice(0, o.start) + text + s.slice(o.end);&lt;br /&gt;		this.setCaret(o.start += text.length, o.start);&lt;br /&gt;	};&lt;br /&gt;	new function(){&lt;br /&gt;		var d = document, o = d.createElement("input"), s = Selection;&lt;br /&gt;		s.isStandard = "selectionStart" in o;&lt;br /&gt;		s.isSupported = s.isStandard || (o = d.selection) &amp;&amp; !!o.createRange();&lt;br /&gt;	};&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Example&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;form id="form"&gt;&lt;br /&gt;	&lt;fieldset&gt;&lt;br /&gt;		&lt;legend&gt;Selection Test&lt;/legend&gt;&lt;br /&gt;		&lt;textarea name="text" rows="10" cols="30"&gt;&lt;br /&gt;www.jsfromhell.com&lt;br /&gt;Jonas Carlos Lalala&lt;br /&gt;Bin Laden x Bush&lt;br /&gt;		&lt;/textarea&gt;&lt;br /&gt;&lt;br /&gt;		&lt;input name="getText" type="button" value="[Get selected text]" /&gt;&lt;br /&gt;		&lt;input name="getSel" type="button" value="[Get cursor]" /&gt;&lt;br /&gt;		&lt;br /&gt;&lt;input name="setText" type="button" value="[Set selected text]" /&gt;&lt;br /&gt;		&lt;input name="setSel" type="button" value="[Set cursor]" /&gt;&lt;br /&gt;	&lt;/fieldset&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var f = document.forms.form;&lt;br /&gt;var selection = new Selection(f.text);&lt;br /&gt;&lt;br /&gt;f.getText.onclick = function(){&lt;br /&gt;	alert(selection.getText());&lt;br /&gt;	f.text.focus();&lt;br /&gt;};&lt;br /&gt;f.setText.onclick = function(){&lt;br /&gt;	var s = prompt("New text:", selection.getText());&lt;br /&gt;	s !== null &amp;&amp; selection.setText(s);&lt;br /&gt;	f.text.focus();&lt;br /&gt;};&lt;br /&gt;f.getSel.onclick = function(){&lt;br /&gt;	var s = selection.getCaret();&lt;br /&gt;	alert("Start: " + s.start + "\nEnd: " + s.end);&lt;br /&gt;	f.text.focus();&lt;br /&gt;};&lt;br /&gt;f.setSel.onclick = function(){&lt;br /&gt;	var s = selection.getCaret();&lt;br /&gt;	selection.setCaret(+prompt("Start:", s.start) || 0, +prompt("End:", s.end) || 0);&lt;br /&gt;	f.text.focus();&lt;br /&gt;};&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sat, 06 Oct 2007 15:02:21 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4620</guid>
      <author>jonasraoni (Jonas Raoni Soares Silva)</author>
    </item>
    <item>
      <title>PHP : Parsea HTML inyectado / Parser HTML inject</title>
      <link>http://snippets.dzone.com/posts/show/4347</link>
      <description>Parsea HTML Inyectado. Esto es &#250;til cuando nos escriben c&#243;digo HTML o Javascript maligno en un texarea. Para m&#225;s informaci&#243;n www.php.net / Parser HTML inject. This is good when we write HTML code or bad javascript on a textarea. For more info www.php.net (sorry english)&lt;br /&gt;C&#243;digo fuente / Source code : &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;function parsearHTMLInjectado($texto)&lt;br /&gt;{&lt;br /&gt;	return nl2br( htmlentities($texto) );	&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 23 Jul 2007 11:16:14 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4347</guid>
      <author>Ricardo (Ricardo m. Garc&#237;a)</author>
    </item>
    <item>
      <title>using Event.observe for when a page loads</title>
      <link>http://snippets.dzone.com/posts/show/3025</link>
      <description>I just prefer this implementation as opposed to window.onload.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Event.observe( window, 'load', function() {&lt;br /&gt;  // Put the Javascript that needs to happen when the page&lt;br /&gt;  // loads here&lt;br /&gt;} );&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;For example, here's a way to make most of your input fields and all of your textareas have a different class when they're selected.  Useful if you want to style them differently with CSS.&lt;br /&gt;&lt;code&gt;Event.observe( window, 'load', function() {&lt;br /&gt;  var inputs = document.getElementsByTagName( 'input' );&lt;br /&gt;  var textareas = document.getElementsByTagName( 'textarea' );&lt;br /&gt;&lt;br /&gt;  for ( var i=0; i&lt;inputs.length; i++ ) {&lt;br /&gt;    type = inputs[i].type;&lt;br /&gt;&lt;br /&gt;    if (&lt;br /&gt;      ( type == 'button' || type == 'reset' ||&lt;br /&gt;      type == 'password' || type == 'text' ||&lt;br /&gt;      type == 'submit' ) &amp;&amp;&lt;br /&gt;      ( inputs[i].onfocus == '' ||&lt;br /&gt;      !inputs[i].onfocus )&lt;br /&gt;    ) {&lt;br /&gt;      inputs[i].onfocus = function() {&lt;br /&gt;        this.className = 'selected';&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      inputs[i].onblur = function() {&lt;br /&gt;        this.className = '';&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  for ( var i=0; i&lt;textareas.length; i++ ) {&lt;br /&gt;    if ( textareas[i].onfocus == '' || !textareas[i].onfocus ) {&lt;br /&gt;      textareas[i].onclick = function() {&lt;br /&gt;        this.className = 'selected';&lt;br /&gt;      }&lt;br /&gt;      textareas[i].onblur = function() {&lt;br /&gt;        this.className = '';&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;} );&lt;/code&gt;</description>
      <pubDate>Mon, 20 Nov 2006 20:47:53 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3025</guid>
      <author>moneypenny ()</author>
    </item>
    <item>
      <title>Input and textarea preview</title>
      <link>http://snippets.dzone.com/posts/show/188</link>
      <description>Preview what you type in an input or a textarea out of them (in a html tag, like a p, hx...)&lt;br /&gt;&lt;br /&gt;Seen here: http://amuchamu.bitacoras.com/archivos/2005/02/17/previsualizacion_de_comentarios (spanish explain).&lt;br /&gt;&lt;br /&gt;javascript code:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;function preview(id1, id2){&lt;br /&gt;	  		var NewText = document.getElementById(id1).value;&lt;br /&gt;	  		splitText = NewText.split(/\n/).join("&lt;br /&gt;");&lt;br /&gt;	  		var DivElement = document.getElementById(id2);&lt;br /&gt;	  		DivElement.innerHTML = splitText;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;html code:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;form action="#"&gt;&lt;br /&gt;&lt;label&gt;Name:&lt;/label&gt;&lt;br /&gt;&lt;input type="text" id="nombre" onkeyup="preview('name', 'preview-name');" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;label&gt;Phone:&lt;/label&gt;&lt;br /&gt;&lt;input type="text" id="phone" onkeyup="preview('phone', 'preview-phone');" /&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Preview&lt;/h2&gt;&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;	&lt;dt&gt;Name:&lt;/dt&gt;&lt;br /&gt;	&lt;dd id="preview-name"&gt;&lt;/dd&gt;&lt;br /&gt;	&lt;dt&gt;Phone:&lt;/dt&gt;&lt;br /&gt;	&lt;dd id="preview-phone"&gt;&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;/dl&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 17 Apr 2005 18:34:32 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/188</guid>
      <author>missha (Ana Bel&#233;n Ram&#243;n)</author>
    </item>
  </channel>
</rss>
