【发布时间】:2017-12-13 15:41:37
【问题描述】:
我在 highcharts JS 中的 xAxis.labels.formatter 函数遇到了这个奇怪而奇妙的问题。
我想在图表的 xAxis 标签中添加一个灯箱图标,如下所示:
return '<div class="label">'
+'<a class="lightbox" href="http://www.google.com" data-lightbox="iframe" data-plugin-options=\'{"type":"iframe"}\'>ICON</a>'
+'</div>';
但是,当呈现此图表时,html 代码会显示以下输出:
<div class="label">
<a class="lightbox" href="http://www.google.com" data-lightbox="iframe" data-plugin-options="{"type":"iframe"}">ICON</a>
</div>
问题在于单引号被渲染成双引号
data-plugin-options="{"type":"iframe"}"
而不是
data-plugin-options='{"type":"iframe"}'
无论我如何尝试,我似乎都无法阻止这种情况发生。
我尝试过的事情:
- 通过 \' 使用简单的转义
- 创建了一个 var 并将其传递给返回字符串
- 使用 .replace(/['"]+/g, '')
谁能指出我正确的方向,因为它让我慢慢发疯,谢谢大家
反馈后更新
感谢您的回复,问题不在于 data-plugin-options 属性中的实际单引号,而是围绕它,因此例如它呈现:data-plugin-options=" {"type":"iframe"}" 而不是 data-plugin-options='{"type":"iframe"}' ,我发现即使我添加一个假的 html 元素,例如 foo=bar,它也会将其呈现为 foo="bar",所以它会自动添加双引号,在 xAxis 标签格式化程序中。
请查看我修改后的JSFiddle (http://jsfiddle.net/g6yehxeo/1/),并检查 xAxis 上 icon 标签的元素,您会发现它带有引号,即使其中没有引号原始代码?关于如何防止这种情况的任何想法,因为没有这些,灯箱似乎无法工作。
谢谢大家
【问题讨论】:
标签: javascript jquery highcharts