2011-02-10 99 views
1

这个问题可以分割成两部分:浏览器转换单引号(')转换成“S和忽略‘’S,HTML /使用Javascript

首先,在浏览器忽略引号的转义: 一幅画值得一体的千言万语:?http://i.stack.imgur.com/ZmlgJ.png

此之前没有发生什么时候这种行为变化
此外,为什么浏览器单引号转化为双引号又是如何得出它不需要逃避例如? :http://i.stack.imgur.com/endzi.png(检查员中的代码与浏览器窗口中的代码相同)

提前致谢!

回答

4

首先,浏览器是忽略引号的转义

HTML与JavaScript不。引用与用于分隔该值的引号字符相匹配的属性值中的字符必须由实体表示,而不是以斜杠作为前缀。

<foo myAttribute="This value includes a double quote character: &quot;"> 

是的,它没有这并没有发生。

此外,为什么浏览器将单引号转换为双引号?

浏览器将HTML解析为DOM。在这个阶段没有引号,只有属性和值。

当您使用DOM检查器时,它会回传到HTML中。使用双引号是一种惯例。几乎所有的HTML都使用"来书写属性值。

那个特殊的DOM检查器甚至没有真正将数据序列化。它只是提供一个可视化。这里它使用颜色更改来标识属性值。

+0

部分我不是在网页编程的新的不匹配,而且我敢肯定这种行为以前不是这样,但我可能是错的,你可能是对的。我记得把`onclick ='javascript:alert(\'hello world \')'`,但是,无论如何``onclick ='javascript:alert(" hello world ")``似乎工作。谢谢。 – joaquin 2011-02-10 21:03:23

0

我不确定是否it's你的问题的原因,但似乎有一个在引号中的'Beginner's spear'

+0

是的,我也看到了,但显然浏览器似乎不在乎。 – joaquin 2011-02-10 21:09:01