On 06/19/2017 11:22 AM, Rick Harrison via use-livecode wrote:
I have a nice example button image swap routine
written in JavaScript which I’d like to use in a .lc script.
To use HTML etc. within a .lc script I have to put
the statement in double quotes such as:
put “<html>”
or
put “<A HREF=‘http://www.google.com' <http://www.google.com'/>>”
where I have to substitute single quotes for the normal double quotes to make
it work.
That’s fine until I have a statement that is already using both double and
single quotes.
The statement still needs to be converted into a .lc script format. The
following statement
will get parsed the wrong way if one wants to put it into double quotes.
<A HREF="http://www.google.com" onmouseover="movepic('button','pic-off.gif')"
onmouseout="movepic('button','pic-on.gif')"><IMG NAME="button" SRC="pic-off.gif" ALT="Image"></A>
becomes:
put "<A HREF="http://www.google.com" onmouseover="movepic('button','pic-off.gif')"
onmouseout="movepic('button','pic-on.gif')"><IMG NAME="button" SRC="pic-off.gif" ALT="Image"></A>”
As you can see the above statement will not be parsed correctly.
Suggestions?
On a related note, if a user types in a word such as “can’t” into a field, the
apostrophe gets interpreted as
a single quote and that messes up the parsing of various .lc script statements
too.
How do you usually solve these issues?
There's a long-standing bug report about wanting to use single- and
double- quotes interchangeably. But even that won't completely solve
your problem here.
I usually resort to a general-purpose function that Ken Ray posted some
years ago for quoting text when you can't do it explicitly:
function q pText
return quote & pText & quote
end q
So you'd end up with
put "<A HREF=" & q("http://www.google.com") && "onmouseover=" &
q("movepic('button','pic-off.gif')") && "onmouseout=" &
q("movepic('button','pic-on.gif')") && "><IMG NAME=" & q("button") &&
"SRC=" & q("pic-off.gif") && "ALT=" & q("Image") & "></A>”
and that should work even if it's a bit ungainly.
To make it more readable, I usually break that up with constants.
Something like:
constant kURL="http://www.google.com"
constant kOnAction="movepic('button','pic-on.gif')"
constant kOffAction="movepic('button','pic-off.gif')"
local sImageContent
function href pURL, pContent
return "<A HREF=" & pURL & ">" & pContent & "</A>"
end href
put "<IMG NAME=" & q("button") && "SRC=" & q("pic-off.gif") && "ALT=" &
q("Image") & ">" into sImageContent
put href(q(kURL) && "onmouseover=" & q(kOnAction) && "onmouseout=" &
q(kOffAction), sImageContent)
--
Mark Wieder
ahsoftw...@gmail.com
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode