ymPrompt提示组件在IE8中的小bug

 


我们写惯性的让dreamweave,eclipse之类的工具帮我们生成html,jsp页面的主体部分。但是正是这个习惯,和我们的ymPrompt的兼容产生了一个小的bug。

doctype申明是生成文件的一部分,虽然大多数Web文档的顶部都有doctype声明,但很多人都没有注意它。虽然doctype被许多人忽视,但在遵循标准的任何Web文档中,它都是一项必需的元素。doctype会影响代码验证,并决定了浏览器最终如何显示你的Web文档。如:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd ">

我们知道它申明版本,规则。这个规则决定了很多东西,在IE8中这个申明就和ymPrompt提示组件中的alert函数产生了冲突,当我们使用alert时,如:

{{ ymPrompt.alert(

Unknown macro: {title}

{}}}{}

);

它会有一个确定按钮,当我们点击确定的时候,它会反色将原来的可操作区屏蔽,这是一个很不友好的屏蔽,每次你都得重新来登陆你的页面。这一切都是在IE8中doctype与ymPrompt冲突产生的bug.

我根据不同的申明做了相同的测试,发现4.01之前版本的html类型的doctype都不会有这种问题,如:

HTML 2:

<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">

HTML 3.2:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

但是其他的4.01以上的html版本以及一些像xhtml版本就不行,具体测试过的有:

HTML 4.01 Strict:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd ">

HTML 4.01 Transitional:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd ">

HTML 4.01 Frameset:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd ">

XHTML 1.0 Strict:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">

XHTML 1.0 Transitional:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

XHTML 1.0 Frameset:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd ">

XHTML 1.1:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd ">

XHTML 1.1 plus MathML plus SVG:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd ">

当然你可以不写doctype,这样它默认的好像是html2.0版本的。

你可能感兴趣的:(eclipse,html,jsp,Web,XHTML)