我正在使用一种流行的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

最佳答案

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

09-05 18:03