I'm working with a Detail Page Button that executes OnClick Javascript. Most of the time it works just fine. However, in this particular instance, one of the merge fields in the script has a value of "St. John's"

I've tried...

var encoded = {!JSENCODE("St. John's")};  //Causes Error
var encoded = {!JSINHTMLENCODE("St. John's")};  //Causes Error

And these return "illegal character"

var encoded = {!URLENCODE("St. John's")};  //Causes Error

returns "missing name after . operator

I've also tried various combinations of escape() and encodeURI() but without success.

Ultimately I think I need to escape that .... I could probably make a formula field that replaces the unsafe characters, and use that result as a merge field in the OnClick Javascript. I'd much rather do it all in button if at all possible

Any suggestions? (not doing business in St. John's is not an option!)


You forgot the quotes on the outside:

var encoded = "{!JSENCODE("St. John's")}";

This would render as:

var encoded = "\"St. John\'s\"";
  • 1
    Well! That work's MUCH better. Thanx Fox! Now that I have a Javascript safe string, I can do whatever I need with it. Mar 14 '18 at 19:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.