首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何对引导弹出窗口和工具提示内容的html进行编码

如何对引导弹出窗口和工具提示内容的html进行编码
EN

Stack Overflow用户
提问于 2014-05-24 08:48:55
回答 2查看 5K关注 0票数 4

这可能是重复的;很难区分,因为关键字包含"html“和"content”,甚至Bing和Google都返回了许多误报。

当data- html =true时,引导工具提示和弹出窗口支持data-content属性的html值。但是,这是无效的

代码语言:javascript
复制
<input id="email" class="form-control" type="email" 
  data-bind="value: Email, valueUpdate: 'afterkeydown'" 
  data-container="body" data-toggle="popover" data-placement="bottom"
  data-title="Email" data-html="true"
  data-content="<p>This is <i>your</i> email address.</p>" />

因为您不能仅仅将HTML放入本身就是html的属性的值中。它可能会混淆解析器,并且是HTML规范所不允许的。

虽然它似乎可以与Internet Explorer一起工作,但我真的不想用50种不同的浏览器和版本进行测试。它确实会混淆Visual Studio 2013 HTML编辑器中的解析器。那个编辑认为没有结尾的引号。

我可以通过在一个单独的文件中分配来自JavaScript的属性来避免这一点,但是这样做很笨拙,并且破坏了关注点的分离。

那么,正确的标记方式是什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-24 08:56:15

只要是有效的HTML属性值,您就可以向html属性添加任何您想要的东西。什么是有效属性值?不包含标签、引号等的内容。所以..。然后呢?解决方案是:在将字符串附加到html属性中之前对其进行处理。

如果您正在使用PHP:http://fi2.php.net/htmlspecialchars或Twig:http://twig.sensiolabs.org/doc/filters/escape.html

如果你使用jquery,当你使用jquery时,$el.data('my_scaped_json)会被转换成原来的样子,比如json对象或html-string:$( $el.data('my_scaped_html) );

票数 0
EN

Stack Overflow用户

发布于 2019-02-28 04:34:54

正如公认的答案所指出的,在用"引用的字符串中不能有引用"。这个问题经常发生。如果您想要显示类似于HTML的文本,那么浏览器应该如何知道它应该解析为HTML的内容以及应该简单地显示的内容。

例如,如何让浏览器显示文本<p></p>

答案是逃避。您可以使用&quot;&lt;等占位符,而不是"<等字符

然而,转义引号的解决方案在这里不起作用。这正是因为浏览器不会将其解析为HTML。如果你在html中添加转义引号,它们在浏览器中看起来不像引号,它们看起来像文本。

然而,还有一种不同的解决方案:用"引用的字符串可以包含',而不会出现问题。以下内容是有效的:

代码语言:javascript
复制
data-content="<div id='string_in_string' ></div>"

这可以应用于您的引导弹出程序,我已经设置了一个小提琴,它显示了如何正确解析单引号字符串,而转义的字符串会使浏览器感到困惑:https://jsfiddle.net/z4t2sud3/3/

这是小提琴内部的代码(小提琴环境自动导入bootstrap、jquery等)

代码语言:javascript
复制
<mark data-content="
    <button class=&quot;btnr&quot; type=&quot;button&quot;>
        Doesn't work
    </button>

    <button class='btn btn-info' type='button'>
        Works
    </button>
    " data-html="true" data-toggle="popover">
    Popovered
</mark>

并确保通过Javascript激活弹出窗口:

代码语言:javascript
复制
$(function () {
  $('[data-toggle="popover"]').popover()
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23840188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档