gpt4 book ai didi

javascript - 使用 Javascript 转义 HTML5 数据属性中的引号

转载 作者:IT王子 更新时间:2023-10-29 03:22:10 24 4
gpt4 key购买 nike

我正在使用 jQuery 的 .data()使用自定义 HTML5 数据属性,其中属性的值需要能够包含单引号和双引号:

<p class="example" data-example="She said "WTF" on last night's show.">

我知道使用像 &quot; 这样的字符代码在数据属性值中可以使上述工作,但我不能总是控制值的输入方式。另外,我需要能够在标记中使用 HTML 标记,如下所示:

<p class="example" data-example="
She said "<abbr title="What The F***">WTF</abbr>" on last night's show.
">

如果某种形式的 .replace()是答案,那么它需要在 .data() 读取值之前完成-也许通过将其应用于整个 <body>

正常的反斜杠像<abbr title="te\'st">WTF</abbr> 一样转义也不起作用。

理想情况下,这将具有与两者一起工作的灵 active :

data-example="..."data-example='...'

但如果只有一种可能,那么我至少可以顺其自然。想法?

更新 - 更多上下文:

我正在为此工作 responsejs.com .这个的实际应用可能是只为超过一定宽度的浏览器加载侧边栏(并在浏览器而不是 PHP 中处理)。以 WordPress 为例,侧边栏可以包含小部件、图像等。PHP 标记中的引号是一个非问题 b/c,它们在到达浏览器之前被解析为 HTML。示例:

<aside id="primary" class="sidebar" 

data-oweb='

<?php dynamic_sidebar( 'primary' ); ?>

'
>

optional default markup for mobile and no-js browsers here

</aside>

最佳答案

没有办法绕过它,您必须正确地转义值,否则 HTML 无法正确解析。解析后不能再用Javascript改正代码,因为那样就已经失败了。

使用正确的 HTML 编码的示例将是:

<p class="example" data-example="She said &quot;&lt;abbr title=&quot;What The F***&quot;&gt;WTF&lt;/abbr&gt;&quot; on last night's show.">

您不能使用反斜杠来转义字符,因为它不是 Javascript 代码。您使用 HTML 实体来转义 HTML 代码中的字符。

如果您无法控制数据的输入方式,那您就完蛋了。您只需找到一种方法来控制它。

关于javascript - 使用 Javascript 转义 HTML5 数据属性中的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7260195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com