Connecting Tech Pros Worldwide Help | Site Map

body.innerHTML issue

  #1  
Old July 23rd, 2005, 12:23 PM
Reed
Guest
 
Posts: n/a
I'm having a problem with apostrophes & quotes when using body.innerHTML.

With the statement: bodyText = document.body.innerHTML

If there was a Form object on my page such as:
<input name="email" type="text" id="email">

bodyText transilates it into
<input name=email type=text id=email>

Is there anything i can do to fix this?
Thanks!
  #2  
Old July 23rd, 2005, 12:23 PM
Vincent van Beveren
Guest
 
Posts: n/a

re: body.innerHTML issue


> bodyText transilates it into[color=blue]
> <input name=email type=text id=email>
>
> Is there anything i can do to fix this?[/color]

You need to escape it.

This is most easly done with regular expressions (I believe)

bodyText = bodyText.replace(/\"/g,"\\\"");

should work



  #3  
Old July 23rd, 2005, 12:23 PM
Richard Cornford
Guest
 
Posts: n/a

re: body.innerHTML issue


Reed wrote:[color=blue]
> I'm having a problem with apostrophes & quotes when
> using body.innerHTML.
>
> With the statement: bodyText = document.body.innerHTML
>
> If there was a Form object on my page such as:
> <input name="email" type="text" id="email">
>
> bodyText transilates it into
> <input name=email type=text id=email>[/color]

You have only tired that on one browser. Mozilla and Opera each produce
distinct output form innerHTML (as do Konqueror/Safari and IceBrowser).
[color=blue]
> Is there anything i can do to fix this?[/color]

No, the innerHTML property reports a string constructed as a normalised
representation of the underlying DOM and any one browser will produce
what it produces, while different browsers (and browser versions) will
produce a different interpretation. Particularly when it comes to
quotes, apostrophise and the case of tag names and attribute names.

Richard.


  #4  
Old July 23rd, 2005, 12:23 PM
Randy Webb
Guest
 
Posts: n/a

re: body.innerHTML issue


Vincent van Beveren wrote:
[color=blue][color=green]
> > bodyText transilates it into
> > <input name=email type=text id=email>
> >
> > Is there anything i can do to fix this?[/color]
>
> You need to escape it.
>
> This is most easly done with regular expressions (I believe)
>
> bodyText = bodyText.replace(/\"/g,"\\\"");
>
> should work[/color]

That works if you already have the string. It doesn't do what the op is
wanting to do though. Try it out.

What the OP is wanting is to read the innerHTML and get the quoted value
back from the browser, which it is normalizing. To get the actual text
of it, with quotes and all, look into the HTTPRequestObject or the JAVA
component listed in the FAQ


--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/
  #5  
Old July 23rd, 2005, 12:24 PM
Grant Wagner
Guest
 
Posts: n/a

re: body.innerHTML issue


Richard Cornford wrote:
[color=blue]
> Reed wrote:[color=green]
> > I'm having a problem with apostrophes & quotes when
> > using body.innerHTML.
> >
> > With the statement: bodyText = document.body.innerHTML
> >
> > If there was a Form object on my page such as:
> > <input name="email" type="text" id="email">
> >
> > bodyText transilates it into
> > <input name=email type=text id=email>
> > Is there anything i can do to fix this?[/color]
>
> No, the innerHTML property reports a string constructed as a normalised
> representation of the underlying DOM and any one browser will produce
> what it produces, while different browsers (and browser versions) will
> produce a different interpretation. Particularly when it comes to
> quotes, apostrophise and the case of tag names and attribute names.
>
> Richard.[/color]

The thing to do to fix it is to not rely on attempting to parse the
contents of innerHTML. Instead, use the DOM accessor methods to obtain the
properties of the elements you want.

ie - document.getElementById('email'); to obtain a specific reference to
that input, or document.getElementsByTagName('input'); to obtain a
collection of all <input> tags, etc.

--
| Grant Wagner <gwagner@agricoreunited.com>

* Client-side Javascript and Netscape 4 DOM Reference available at:
*
http://devedge.netscape.com/library/...ce/frames.html

* Internet Explorer DOM Reference available at:
*
http://msdn.microsoft.com/workshop/a...ence_entry.asp

* Netscape 6/7 DOM Reference available at:
* http://www.mozilla.org/docs/dom/domref/
* Tips for upgrading JavaScript for Netscape 7 / Mozilla
* http://www.mozilla.org/docs/web-deve...upgrade_2.html


Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
Cross domain iframe dynamic height change issue. sreenath1977 answers 4 February 7th, 2009 11:51 AM
window.opener issue with IE 7, Fire Fox 2.0 and Netscape 8 asadhkhan answers 5 June 4th, 2007 12:12 PM
AJAX Issue whreed@gmail.com answers 12 July 8th, 2006 02:25 AM
Simple innerHTML issue Christopher Benson-Manica answers 5 July 20th, 2005 12:18 PM