您的位置:首页 > 其它

VS2005下使用Frame碰到的问题

2008-03-05 10:50 369 查看
1、如果Frame中页面是使用了AJAX,就可能会报一个JS错误:

Sys.ArgumentOutOfRangeException: Value must be an integer.

Parameter name: x

Actual value was NaN.
原因:

使用FrameSet或Iframe时,frame或iframe的frameborder属性应使用1 或 0,如:

frameborder="0"

而不能使用yes 或 no,如:

frameborder="no"

2、frame的Scolling="auto" 在HTML和XHTML下显示的样式不同

<frameset id="TotalFrameSet" rows="80,*,25" frameborder="0">

<frame name="header" src="Controls/WscHeadForIFrame.aspx" scrolling="no" noresize marginWidth="0" marginHeight="0" frameBorder="0" LEFTMARGIN="0" TOPMARGIN="0">

<frameset id="mainFrame" cols="194,20,*" frameSpacing="1" frameBorder="0" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0" noresize>

<frame name="contents" src="Controls/WscLeftMenuForIFrame.aspx" marginWidth="0" marginHeight="0" frameBorder="0" scrolling="no" LEFTMARGIN="0" TOPMARGIN="0">

<FRAME border="1" id="CtrlFrame" marginWidth="0" marginHeight="0" src="Controls/WSCCtrl.aspx"

frameBorder="0" scrolling="no" LEFTMARGIN="0" TOPMARGIN="0" noresize>

<frame name="main" src="<%=MainUrl%>"

scrolling="auto" marginheight="0" marginwidth="0" borderColor="#ffffff" noresize frameBorder="0">

</frameset>

<frame name="footer" src="Controls/WscFootForIFrame.aspx" scrolling="no" noresize>

</frameset>

如果frame中的页面是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
那么即使没出现滚动条,也会留下滚动条的空间,页面看起来比较好看

但是如果frame中的页面是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
那么如果没出现滚动条,页面中的DataGrid就会紧贴到边上,很难看。



最后,不得不给每个页面Body加上Style:
<body style="margin-right: 20px;">



3、对象的height:100%不能用

网上找到了这位老兄的解释:颇为精辟 收藏

html,body{

margin:0px;

height:100%;

}


代码已经到了不能再简单的地步,同时设置了HTML与body的height:100%;,而这个就是高度自适应问题的关键所在。

分析:

一个对象高度是否可以使用百分比显示,取决于对象的父级对象,#left在页面中直接旋转在body之中,因此它的父级是body,而浏览器默认状态 下,是没有给body一个高度属性的,因此当我们直接设置#left为height:100%;时,不会产生任何效果,而当我们给body设置了100% 之后,它的子级对象#left的height:100%;便发生作用了,这便是浏览器解析规则引发的高度自适应问题。而代码中除了给body应用之外,还 给HTML对象也应用相同的样式设计,这样做的好处是使IE与firefox浏览器都能够实现高度自适应,而body却不是。另外,Firefox中的 HTML标签不是100%高度,因此给两个标签都定义为height:100%;以保证两个浏览器下均能够正常显示。

其它解决方案:

XHTML不支持height=100%
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: