nig*_*der 5 html javascript jquery
请看下面的代码:
在第一个链接中有一个title属性,其中包含html特殊字符,<后跟"!" (实际上跟随哪个角色并不重要).当我们使用jQuery的attr()函数获取该title属性的值时,html被破坏(只要以下文本也缺失,您就可以看到没有打印"<"字符.
在第二个链接中唯一的区别是我之后添加了一个空格<,现在它按预期工作.
你认为这是jQuery中的一个错误还是我不明白的东西?
PS.如果你认为我做了一些奇怪的事情 - 它只是来自某个工具提示插件的一些代码.
HTML:
<a href="#" title="<div style='color:red'>This is the less than sign: <! Now you know it?</div>">This is a link</a><br>
<a href="#" title="<div style='color:red'>This is the less than sign: < ! Now you know it?</div>">This is a link</a><br>?
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$('a').each(function() {
$('body').append($(this).attr('title')); });
// just to exclude that it's append() function's fault :)
$('body').append("<div style='color:red'>This is the less than sign: <! Now you know it?</div>");?
Run Code Online (Sandbox Code Playgroud)
这非常有趣.我查找了title属性中的文本,参考文献说:
用户代理应解释属性值,如下所示:
- 用字符替换字符实体,
- 忽略换行,
- 用一个空格替换每个回车或标签.
显然,这是预期的行为.<正在被<浏览器解析,可能被jQuery解释为HTML.
你也应该逃避&符号:
&lt;
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/htdTg/9/
更好的演示:http://jsfiddle.net/PsZeY/6/
| 归档时间: |
|
| 查看次数: |
2594 次 |
| 最近记录: |