title="" 中的 qtip 和 html 数据导致冲突

qtip and html data in title="" is causing conflict

我正在尝试将 html 内容加载到 visjs timeline and using qtip2 中,以便在单击时间轴内的超链接时显示工具提示。这个tooltip需要显示html个内容,所以里面有"",插入title=""时会出现问题。通常我可以在 title='<-html - content->' 中使用单引号,因此它应该能够处理引号。但是现在我遇到了一个问题,因为我正试图从 javascript 内部执行此操作,它已经使用了 javascript 本身的单引号。

如果我想向 visjs timeline 添加项目,我需要像这样向时间轴插入新项目。

{id: <?php echo $key; ?>, group: <?php echo $aspects['group'][$key]; ?>, content: '<a title="<?php if(isset($aspects['interpretation'][$key])): echo $aspects['interpretation'][$key]; endif;?>" role="button"><?php echo $aspects['symbols'][$key]; ?></a>', start: new Date(<?php echo $aspects['dates']['start'][$key]['year']; ?>, <?php echo $aspects['dates']['start'][$key]['month'] - 1;?>, <?php echo $aspects['dates']['start'][$key]['day'];?>, <?php echo $aspects['dates']['start'][$key]['hour'];?>, <?php echo $aspects['dates']['start'][$key]['min'];?>), end: new Date(<?php echo $aspects['dates']['end'][$key]['year']; ?>,<?php echo $aspects['dates']['end'][$key]['month'] - 1; ?>, <?php echo $aspects['dates']['end'][$key]['day']; ?>, <?php echo $aspects['dates']['end'][$key]['hour']; ?>, <?php echo $aspects['dates']['end'][$key]['min']; ?> ) },

但是如您所见,content:'href etc'已经使用了单引号。那么我怎样才能转义这个 html 引号,这样它就不会引起冲突呢?我在 href 中尝试了 title = \" \" 之类的东西,但我还没有找到任何解决方案来解决我的问题。

您应该在输出 PHP 变量之前使用 htmlspecialchars

尝试在 JavaScript 中使用 templating strings

var string = `hello " and ' work in this string`;