Por qué no le añades a mano el caracter de escape cuando defines el string?
Si vas a meter input de usuario sin sanitizar, te hackean la web. Y esto no lo evitas con html_entities ni la función de turno.
Véase tu ejemplo:
$(selector).html('<p>ves aquella esquina? \' tu madre y tu hermana ahí trabajan!</p>');
Imagínate que me dejas registrarme en tu web y vas a poner mi nombre de usuario ahí:
$(selector).html('stringmanolo');
- Si escapas con remplace las comillas hago:
user: stringmanolo\'); alert(); \'
Y queda:
$(selector).html('stringmanolo\\'); alert(); \\'');
O hago:
user: \'+alert());//
$(selector).html( '\\' + alert() ); //');
Usa htmlpurifier.
https://github.com/ezyang/htmlpurifierDe todas formas si no sabes lo que pueden hacer en las headers, en php, en js, en html, en css, en jquery y demás... Poco vas a solucionar. Acabaras metiendo input sanitizado en el js y te harán inyección.
Deberías leerte libros de seguridad web.