我正在使用流行的 css hack 来启用 Internet Explorer 8 中的边界半径,可以在此处找到:( Curved-corner-border-radius-cross-browser )。
它在 IE8 中按预期工作,但在任何具有回发和 SmartNavigation=True 的 .net 页面上除外。在回发时,我收到一个 javascript 错误 Invalid Argument Line 87,这是在 htc 文件中,其中正在检索具有圆角的 offsetHeight / offsetWidth 的 div。css 无法正常工作,布局完全混乱。
我在这个 htc 文件中放了一个 javascript 警报,只是为了显示应该有圆角的容器的 offsetWidth 的值。当您第一次加载页面时,您会看到数值,单击警报上的确定,css 将按应有的方式显示。在回发时,警报将显示值 -1。在警报上单击“确定”,css 已损坏。为什么 SmartNavigation=True 时无法在回发时找到 offsetWidth / offsetHeight?
在回发时发生错误,无效的参数行 87(实际上是 88 现在带有警报)并且 css 不呈现。我怀疑这与页面初始化以及调用此 htc 文件中的 javascript 时有关。如果是这种情况,为什么它在第一个页面加载时工作,是什么导致在 SmartNavigation=Ture 的回发期间调用 htc 文件的方式不同。?有什么想法可以让这个 IE hack 与 SmartNavigation 一起工作吗?
这是页面:http: //innerworkingdesigns.com/demos/radius/test.aspx
点击此处查看 htc 文件 http://innerworkingdesigns.com/demos/radius/styles/border-radius.htc