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