zoukankan      html  css  js  c++  java
  • VS2005下使用Frame碰到的问题

    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%
  • 相关阅读:
    筛选法求素数
    C/C++经典面试题目
    操作系统笔试面试基本内容
    Win32/MFC的基本概念
    STL采用的标准模板库
    数据结构基本概念
    SQL基础语句
    C/C++基础概念
    计算机网络基础概念
    流水作业 批作业调度
  • 原文地址:https://www.cnblogs.com/songsh96/p/1091392.html
Copyright © 2011-2022 走看看