Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #33633

Re: Crazy Quotes!

Newsgroups comp.lang.javascript
Date 2017-07-23 20:14 -0700
References <bc8875a5-1a83-4bc4-8653-66d85ab67ec8@googlegroups.com> <1a3f1888-e578-458c-9d0e-243efbb35ab9@googlegroups.com> <cb338d8c-34eb-4865-bcc5-634b64bc3613@googlegroups.com> <5de62444-a96d-466d-acd0-9710b1f2dcff@googlegroups.com>
Message-ID <66fd59a7-e89c-4d40-be7c-1d80b0fa4c28@googlegroups.com> (permalink)
Subject Re: Crazy Quotes!
From justaguy <lichunshen84@gmail.com>

Show all headers | View raw


On Sunday, July 23, 2017 at 12:01:19 PM UTC-4, Julio Di Egidio wrote:
> On Sunday, July 23, 2017 at 5:33:37 PM UTC+2, justaguy wrote:
> > On Sunday, July 23, 2017 at 11:18:04 AM UTC-4, Julio Di Egidio wrote:
> > > On Sunday, July 23, 2017 at 5:57:09 AM UTC+2, justaguy wrote:
> > > > var cond = 'yes',
> > > >     lineX = '',
> > > >     oid = 7;
> > > > 
> > > > if (cond == 'Yes') {lineX = 
> > > > 	"<br><input type=button value=Update onclick=doSomething("+oid+")>" + 
> > > > 	"&nbsp;&nbsp;&nbsp;&nbsp;" + 
> > > > 	"<a href=mycomment.cfm?Number="+oid+" target=_new>Comment</a>";
> > > > 	}
> > > > 		
> > > > var doSomething = function(oid) {
> > > > 	console.log(oid);
> > > > }		
> > > > 
> > > > Of the above, the quotes for the line with "onclick=soSomething()..."
> > > > drives me nuts. How to fix them?
> > > 
> > > That code is just "ugly": the advice really is manipulate the DOM instead.
> > > 
> > > That said, it is not even just about escaping quotes within quotes: html
> > > attributes should be html-encoded (no built-in function to do this, anyway
> > > there are only 4 characters to escape: ", <, >, and &), plus url parameters
> > > should be url-encoded (use encodeURIComponent there).
> > > 
> > > Anyway, assuming your attributes (your oid in particular) need no encoding,
> > > here is how a single-quoted string looks like:
> > > 
> > >   '<br><input type="button" value="Update" ' +
> > >   'onclick="doSomething(&quot;' + oid + '&quot;)">' +
> > >   '&nbsp;&nbsp;&nbsp;&nbsp;' +
> > >   '<a href="mycomment.cfm?Number=' + oid + '" target="_new">Comment</a>'
> > > 
> > > And here is the double-quoted one, for comparison:
> > > 
> > >   "<br><input type=\"button\" value=\"Update\" " +
> > >   "onclick=\"doSomething(&quot;" + oid + "&quot;)\">" +
> > >   "&nbsp;&nbsp;&nbsp;&nbsp;" +
> > >   "<a href=\"mycomment.cfm?Number=" + oid + "\" target=\"_new\">Comment</a>"
> > > 
> > > Not tested, there may be typos: but you get the picture...
> > 
> > Yes, it works. So, lesson learned: the key here is to use the 
> > &quot; in html format.  Thought I tried to '" + oid + "' to no avail.
> 
> Or you could have used single-quotes there, since single-quotes need not be
> html-encoded:
> 
>   'onclick="doSomething(\'' + oid + '\')">' +
> 
> or:
> 
>   "onclick=\"doSomething('" + oid + "')\">" +
> 
> Still a terrible approach...   ;)
> 
> Julio

Ok, thanks.

Back to comp.lang.javascript | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

Crazy Quotes! justaguy <lichunshen84@gmail.com> - 2017-07-22 20:56 -0700
  Re: Crazy Quotes! "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2017-07-23 10:51 +0200
    Re: Crazy Quotes! justaguy <lichunshen84@gmail.com> - 2017-07-23 06:17 -0700
      Re: Crazy Quotes! "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2017-07-23 17:24 +0200
        Re: Crazy Quotes! justaguy <lichunshen84@gmail.com> - 2017-07-23 08:36 -0700
  Re: Crazy Quotes! Julio Di Egidio <julio@diegidio.name> - 2017-07-23 08:17 -0700
    Re: Crazy Quotes! justaguy <lichunshen84@gmail.com> - 2017-07-23 08:33 -0700
      Re: Crazy Quotes! Julio Di Egidio <julio@diegidio.name> - 2017-07-23 09:01 -0700
        Re: Crazy Quotes! justaguy <lichunshen84@gmail.com> - 2017-07-23 20:14 -0700

csiph-web