10

我将以此作为开头:“我知道这是不好的做法和丑陋的 hack(我很抱歉)但是......”

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

在该 html 中,我有一个要绑定内联onclick事件处理程序的元素。

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

我有这样的事情:

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

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

4

2 回答 2

9

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

<div title="This says &quot;Hello!&quot;">
    Hello!
</div>
于 2013-04-02T22:26:23.927 回答
0

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

像这样的东西:

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

老实说,我真的不明白这是如何工作的。如果有人能澄清过程的哪一部分将这些&quot;s 更改为实际的功能引号,我会很高兴。

于 2013-04-02T22:30:29.133 回答