Du hast in einer Variable foo einen String mit einem ' darin und baust den in ein neues Javascript ein.
Unmittelbar:
Du denkst:
<a href="javascript: foo">
Es ist aber:
<a href="javascript: un'geschickt">
Lösungsrichtung:
foo.replace("'", "\\'");
Es liegt also am Kontextwechsel.
Langfristig:
Wenn ich die „Bockstürze“ sehe, die Du durch das Senden als CSV machen musst, wird mir mit jeder Zeile JS unklarer, warum Du das Senden als JSON so sorgfältig vermeiden willst. Was Du an Zeit zu gewinnen glaubst zerrinnt dann bei der Verarbeitung.