设置SmartNavigation = True会导致javascript offset.Width / offset.Height出错

时间:2012-11-01 18:17:05

标签: c# asp.net .net css

我正在使用流行的css hack在Internet Explorer 8中启用border-radius,可在此处找到:(Curved-corner-border-radius-cross-browser)。

它在IE8中按预期工作,除了在任何.net页面上有回发和SmartNavigation = True。在回发时我得到一个javascript错误无效参数行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黑客使用SmartNavigation?

这是页面: http://innerworkingdesigns.com/demos/radius/test.aspx

单击此处查看htc文件 http://innerworkingdesigns.com/demos/radius/styles/border-radius.htc

2 个答案:

答案 0 :(得分:1)

问题在于SmartNavigation = True。删除此设置或设置为false可修复此问题。您仍然会遇到SmartNavigation = True已解决的任何问题,但这是次要的,并且已弃用SmartNavigation http://msdn.microsoft.com/en-us/library/system.web.ui.page.smartnavigation.aspx

答案 1 :(得分:0)

如果您在IE的早期版本中尝试它,那么border-radius将无法工作..

如果你在IE 9中尝试这个,那么请确保你有

<meta http-equiv="X-UA-Compatible" content="IE=9" />