第三级报价在HTML和JavaScript中转义

时间:2013-04-02 22:22:34

标签: javascript jquery html jquery-tools

我将在序言中写道:“我知道这是不好的做法,也是一个丑陋的黑客(我很抱歉)但是......”

我正在使用jQuery TOOL的工具提示小部件在用户将鼠标悬停在html元素上时显示工具提示。使用此小部件,您可以将工具提示的html添加到元素的title属性。

在html内部,我有一个元素,我想绑定一个内联onclick事件处理程序。

不幸的是,我遇到了太多的引号层,无法将参数传递给我试图调用的函数。

我有这样的事情:

<div title="<div onclick='myFunction(_____)'>My tooltip content</div>">My element</div>

如果我需要将整数传递给myFunction,这是有效的,因为它不需要另一组引号。不幸的是我想将一个字符串传递给myFunction。如何进一步转义此字符串参数,以便它不会关闭onclicktitle字符串?

2 个答案:

答案 0 :(得分:8)

在HTML属性中,您应该将引号编码为HTML实体,例如:

<div title="This says &quot;Hello!&quot;">
    Hello!
</div>

答案 1 :(得分:0)

我能够找到解决我特定问题的方法。不确定这是否适用于一般情况,或者jQuery TOOLs是否正在做一些神奇的事情以取消我的字符串,但我最终逃脱了&quot;并且它确实评估了已执行的有效Javascript。

这样的事情:

<div title="<div onclick='myFunction(&quot;_____&quot;)'>My tooltip content</div>">My element</div>

我真的不明白这是多么诚实。如果有人能够澄清这个过程的哪个部分正在将这些&quot;变成实际的功能引用,那就太喜欢了。