I have some script to denormalize the tags that get normalized in the Ajax return. The problem is that when I do: str.replace( /&/g, "&" ) in my script, the VisualForce page rendering alters the string to be: str.replace( /&/g, "&" ). It's not at all the same thing. Is there a way to keep the VisualForce page rendering from altering my script when it translates the page?

This may be the answer, I probably should change it to a resource and just add a reference to the separate script file. The trouble with this is that changing a debugging the script will be painful because I'll have to keep reloading the resource every time I make a change. I was planning on doing this later but during the development phase, this will be painful.

  • It's not clear from your posting what the different is, both str.replace calls look identical. Typo? Jul 19, 2013 at 16:09
  • Stack Exchanged rendered both the & and & as & in the original question because they weren't included in in-line code marks (`).
    – Matt K
    Jul 19, 2013 at 16:37
  • Looks like I should have enclosed the post in code tags because it has been normalized to the point the code has been removed. I put the script and style sheets in a resource within my org but now the Ajax code is broken and I'm not sure why. All I did is remove my javascript from the page and place it in a resource. Now when I try to invoke the remote method, the VF Ajax handler fails with the exception of "b is undefined". Jul 19, 2013 at 16:46

1 Answer 1


You'll want to use this insead:

str.replace( /{!HTMLENCODE('&')}/g, '&' );

The HTMLENCODE visualforce function will encode the ampersand (&) into & on the server-side when the page is loaded.

In the page source, it will appear as:

str.replace( /&/g, '&' );

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .