Экранирование одинарной кавычки в переменной данных - PullRequest
0 голосов
/ 11 декабря 2019

У меня есть таблица данных jQuery, и я пытаюсь использовать всплывающее окно для отображения некоторых комментариев, но комментарии, содержащие одну кавычку, не позволяют всплывающему элементу отображать весь комментарий.

В ячейке с данными,весь комментарий показывается. Не уверен, почему всплывающее окно не отображает весь комментарий.

Вот код таблицы данных (максимально упрощенный):

 $.ajax({
   url: 'process/getTargetSheet.php',
   type: 'POST',
   data: '',
   dataType: 'html',
   success: function(data, textStatus, jqXHR){
     var jsonObject = JSON.parse(data); 
     var table = $('#example1').DataTable({
       "dom": "Rlfrtip",
       "data": jsonObject,
       "columns": [
         {
           "data": "tsc_tgcomment",
           "fnCreatedCell": function (nTd, sData, oData, iRow, iCol)
           {
             var tccomment = oData.tsc_tgcomment;

             $(nTd).html("<a tabindex='0' class='tcDisplay' 
                           data-toggle='popover' data-trigger='focus' 
                           data-content='"+tccomment+"' id='tcDisplay' 
                           data-toggle='modal'>"+tccomment.substring(0, 50)+"...</span>");

             $(function () {
               $('[data-toggle="popover"]').popover();
             });
           },
           // some more columns
         }
       ]
     });
   },
   error: // nothing important here
 });

То есть в $ (nTd)часть выше, вы увидите, где я добавил tccomment в popover. Но строки, в которых есть кавычки, не показывают весь комментарий.

Я пытался использовать «escape» следующим образом:

data-content='"+escape(tccomment)+"'

Но комментарий выводится за пределы поповера и включает в себя связкузнаков процента.

Как я могу исправить это, чтобы показать весь комментарий во всплывающем окне?

...