我在通过 javascript 显示带双引号的文本时遇到问题。我想在模式中显示带双引号的文本。但为了做到这一点,我必须使用 javascript。代码是这样的: HTML 代码:
<button id="info" class="btn btn-link" data-toggle="modal" data-target="#infoDetails" data-name="<?php echo $name;?>" data-detail="<?php echo $details;?>" >Click Here</button>
HTML 代码(模式内):
<p align="justify" id="detaiLInfo" style="font-size: 14px"> </p>
显示模态的 JavaScript 代码:
<script>
$('#infoDetails').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget) // Button that triggered the modal
var name = button.data('name') // Extract info from data-* attributes
var details = button.data('detail')
var modal = $(this)
modal.find('.modal-header #name').text(name)
modal.find('.modal-body #detaiLInfo').text(details)
});
一切正常,但是当 $details 的值=“生物学一词源自希腊语 βίος,bios,“生命”和后缀 -λογία,-logia,“研究”时。\"";
它只给出这个输出(在模式内):
生物学一词源自希腊语 βίος,bios,
但是当我尝试在 html 代码中回显它(但不在模态代码中),如下所示: echo $details;
,结果是:
生物学一词源自希腊语 βίος,bios,“生命”和后缀 -λογία,-logia,“研究”。
谁能帮我解决这个问题吗?请..
最佳答案
如果你检查发生了什么,服务器生成的 HTML 代码(如浏览器客户端字面上所见)将得到打开“life”的 "
并被解释为结束 引用 data-detail
属性,后跟尾随垃圾,然后浏览器的 HTML 解析器会原谅并忽略这些垃圾。我建议在说明文本中使用 UTF-8 弯引号,side-解决问题并看起来更好!否则,您可以对有问题的内部引号进行实体编码。一般来说,将长文本和/或格式化文本打包到数据
字段中是一种这个想法的误用。也许这些数据可以被打包到一个仔细id
的display: none
存储区域的HTML内容中,以便用JS动态提取。
再次扫描,它看起来像 detaiLInfo
中的 capp-o
关于javascript - 通过 javascript 将文本(双引号存储在变量中)显示到模态时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28768777/