Может быть, я просто слишком обдумывал это, но у меня возникла проблема с выяснением того, что можно использовать в строке в некотором коде JavaScript внутри обработчика ссылки onClick. Пример:
<a href="#" onclick="SelectSurveyItem('<%itemid%>', '<%itemname%>'); return false;">Select</a>
В <%itemid%>
и <%itemname%>
происходит замена шаблона. Моя проблема в том, что имя элемента может содержать любой символ, включая одинарные и двойные кавычки. В настоящее время, если он содержит одинарные кавычки, он нарушает код JavaScript.
Моей первой мыслью было использование функции языка шаблонов для JavaScript-экранирования имени элемента, которое просто экранирует кавычки. Это не исправит случай строки, содержащей двойные кавычки, которая нарушает HTML-код ссылки. Как обычно решается эта проблема? Нужно ли HTML-экранировать весь обработчик onClick?
Если это так, то это выглядело бы действительно странно, поскольку функция escape для языка шаблонов также HTMLify скобок, кавычек и точек с запятой ...
Эта ссылка создается для каждого результата на странице результатов поиска, поэтому создание отдельного метода внутри тега JavaScript невозможно, поскольку мне нужно сгенерировать его для каждого результата.
Кроме того, я использую шаблонизатор, разработанный в компании, в которой я работаю, поэтому решения для конкретных наборов инструментов мне не пригодятся.