[jQuery] Re: strip out textarea 's HTML attribute

2008-11-18 Thread Richard D. Worth
On Tue, Nov 18, 2008 at 1:37 PM, cc96ai <[EMAIL PROTECTED]> wrote: > > Thanks it works fine, > > Can I know what is the different between > > var code = $("").html($("#content").val()); > In this one you're creating an empty div element (by providing an html string), returned as the only item

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-18 Thread cc96ai
Thanks it works fine, Can I know what is the different between var code = $("").html($("#content").val()); and var code = $("" + $("#content").val() + ""); On Nov 18, 10:21 am, "Richard D. Worth" <[EMAIL PROTECTED]> wrote: > change > > var code = $("").html($("#content").val()); > > to >

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-18 Thread Richard D. Worth
The difference between these two may be related to the following bugs: http://dev.jquery.com/ticket/3592 http://dev.jquery.com/ticket/2647 - Richard On Tue, Nov 18, 2008 at 1:21 PM, Richard D. Worth <[EMAIL PROTECTED]> wrote: > change > > var code = $("").html($("#content").val()); > > to > > v

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-18 Thread Richard D. Worth
change var code = $("").html($("#content").val()); to var code = $("" + $("#content").val() + ""); - Richard On Tue, Nov 18, 2008 at 1:14 PM, cc96ai <[EMAIL PROTECTED]> wrote: > > I still get the popup window, if the textarea contains javascript > popup > it seems the following code is still

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-18 Thread cc96ai
I still get the popup window, if the textarea contains javascript popup it seems the following code is still executing. var code = $("").html($("#content").val()); http://www.google.ca"; target="_new" border="2">test link alert("popup"); On Nov 18, 7:49 am, Eric Martin <[EMAIL PROTECTED]>

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-18 Thread Eric Martin
I think this should do what you want: var code = $("").html($("#content").val()); var links = $("a", code); var images = $("img", code); links.each(function (i, lnk) { $(lnk).removeAttr("target"); }); images.each(function (i, img) { $(img).removeAttr("border"); }); var clean = c

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-17 Thread Richard D. Worth
As shown earlier by Hector. Here's another example: var foo = $(""); // create an empty div element foo.html("Hello"); // set the html var html = foo.html(); // get the html It's just in memory, all disconnected from the DOM, as it was never appended to the body or any other element in the docume

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-17 Thread cc96ai
if div foo is outside the DOM, how could we use jQuery to assign the HTML into it ? and retrieve it back ? On Nov 17, 1:51 pm, "Hector Virgen" <[EMAIL PROTECTED]> wrote: > The div will only be part of the body if you append it to the body. > var div = document.createElement('div'); // not part of

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-17 Thread Hector Virgen
The div will only be part of the body if you append it to the body. var div = document.createElement('div'); // not part of the dom yet div.setAttribute('id', 'foo'); // set an id, but it's still not part of the dom document.body.appendChild(div); // now the div is part of the dom But I'm not sure

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-17 Thread cc96ai
how could I create the DIV outside the DOM ? if I create a inside the , it is part of the DOM, isn't it ? On Nov 17, 12:32 pm, "Hector Virgen" <[EMAIL PROTECTED]> wrote: > Will javascript be executed by jQuery#html() if the container is not part of > the dom? > -Hector > > On Mon, Nov 17, 2008

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-17 Thread Hector Virgen
Will javascript be executed by jQuery#html() if the container is not part of the dom? -Hector On Mon, Nov 17, 2008 at 12:21 PM, cc96ai <[EMAIL PROTECTED]> wrote: > > That is my original design, however if the textarea contains the > javascript, it will execute the Javascript in div as well. > >

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-17 Thread cc96ai
That is my original design, however if the textarea contains the javascript, it will execute the Javascript in div as well. in the following example, the popup will come out when we try to populate the textarea content into div. that's why I am looking other way to parse the content. e.g. http:/

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-17 Thread Richard D. Worth
There's no need to hide it even, since it's disconnected from the DOM. - Richard On Mon, Nov 17, 2008 at 3:01 PM, Hector Virgen <[EMAIL PROTECTED]> wrote: > You can try assigning the value of the textarea to a hidden div. Then > you'll have access to jQuery's functions on the HTML: > var html =

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-17 Thread Hector Virgen
You can try assigning the value of the textarea to a hidden div. Then you'll have access to jQuery's functions on the HTML: var html = $('#content').val(); var div = $('').css({display: 'none'}); div.html(html); div.find('a[target]').removeAttr('target'); Then replace the textarea with the html co

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-17 Thread cc96ai
If we do the replace , it will replace all the tag's border & target. is there anyway it can replace on tag level ? On Nov 17, 10:34 am, Eric Martin <[EMAIL PROTECTED]> wrote: > If you just want the "string" value, how about: > > var content = $("#content").val(); > content = content.replace(/

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-17 Thread Hector Virgen
If you want to include HTML in your text area, you should be using a function like PHP's "htmlentities()" on the inner contents of the HTML. PHP: My Link'; echo '' . htmlentities($value) . ''; ?> Resulting HTML: Now the contents of your text area will be valid, and

[jQuery] Re: strip out textarea 's HTML attribute

2008-11-17 Thread Eric Martin
If you just want the "string" value, how about: var content = $("#content").val(); content = content.replace(/ target=(\'|\")_(new|blank)(\'|\")/, ""); content = content.replace(/ border=(\'|\")\d+(\'|\")/, ""); -Eric On Nov 17, 10:18 am, cc96ai <[EMAIL PROTECTED]> wrote: > I have a text area