取代iframe框架

一、frameset
1. 属性
①border
设置框架的边框粗细。
②bordercolor
设置框架的边框颜色。
③frameborder
设置是否显示框架边框。设定值只有0、1;0 表示不要边框,1 表示要显示边框。
④cols
纵向分割页面。其数值表示方法有三种:“30%、30(或者30px)、*”;数值的个数代表分成的视窗数目且数值之间用“,”隔开。“30%”表示该框架区域占全部浏览器页面区域的30%;“30”表示该区域横向宽度为30像素;“*”表示该区域占用余下页面空间。例如:cols="25%,200,*" 表示将页面分为三部分,左面部分占页面30%,中间横向宽度为200像素,页面余下的作为右面部分。
⑤rows
横向分割页面。数值表示方法与意义与cols相同。
⑥framespacing
设置框架与框架间的保留的空白距离。
2. 用例
<frameset cols="213,*" frameborder="no" border="0" framespacing="0">
注意1:
cols与rows两属性尽量不要同在一个<frameset>标签中使用。若要实现下图架构,代码正确写法为:
Frameset使用教程
<frameset rows="59,*" cols="*" frameborder="no" border="0" framespacing="0">
<frame src="???" name="topFrame" scrolling="No" noresize="noresize" id="topFrame"/>
<frameset cols="213,*" frameborder="no" border="0" framespacing="0">
<frame src="???" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame"/>
<frame src="???" name="mainFrame" id="mainFrame"/>
【即,若想即使用cols又使用rows,可利用frameset嵌套实现】
注意2:
<frameset cols="40%,*,*">
意思是:第一个框架占整个浏览器窗口的40%,剩下的空间平均分配给另外两个框架。
<frameset cols="*,*,*,*">
意思是:浏览器窗口等分为四部分。

二、frame
1. 属性
①name
设置框架名称。此为必须设置的属性。
②src
设置此框架要显示的网页名称或路径。此为必须设置的属性。
③scrolling
设置是否要显示滚动条。设定值为auto, yes, no。
④bordercolor
设置框架的边框颜色。
⑤frameborder
设置是否显示框架边框。设定值只有0、1;0 表示不要边框,1 表示要显示边框。
⑥noresize
设置框架大小是否能手动调节。
⑦marginwidth
设置框架边界和其中内容之间的宽度。
⑧marginhight
设置框架边界和其中内容之间的高度。
⑨width
设置框架宽度。
⑩height
设置框架高度。
2. 用例
<frame src="???" name="topFrame" scrolling="No" noresize="noresize" marginwidth="10" marginhight="10" width="400" height="800" />

3.

Iframe父页面与子页面之间的相互调用
Iframe父页面与子页面之间的相互调用
父页面:

复制代码
<!DOCTYPE html>
<html>
<head>
    <title>parents</title>
    <meta charset="UTF-8">
</head>
<body>
<div id="default">div内容</div>
<iframe src="child.html" id="child"></iframe>
 <script language="javascript" type="text/javascript">
  function sayhello() {
    alert('Hello World!');
  }
  var value = 'value';
  child.contentWindow.test();
</script>

</body>
</html>
复制代码
子页面:

复制代码
<!DOCTYPE html>
<html>
<head>
    <title>child</title>
    <meta charset="UTF-8">
    <script language="javascript" type="text/javascript" src="js/jquery.min.js"></script>
    <script language="javascript" type="text/javascript">
        $(function() {
            //在iframe子页面中查找父页面元素
            alert($('#default', window.parent.document).html());
            //在iframe中调用父页面中定义的变量
            alert(parent.value);
            //在iframe中调用父页面中定义的方法
            parent.sayhello();
        });
     
   function test() {
        alert('我是子页面!');
    }
</script> </head> <body> <div>iframe子页面内容</div> </body> </html>

四、iframe
是浮动的框架(frame),其常用属性与frame类似,其他的主要有以下(相同的就不列举了)
1. 属性
①align
设置垂直或水平对齐方式
②allowTransparency
设置或获取对象是否可为透明。
2. 用例
<iframe name="123" align="middle" marginwidth="0" marginheight=0 src="???" frameborder="0" scrolling="no" width="776" height="2500"></iframe>

注意:
iframe标签与frameset、frame标签的验证方法不同,是XHTML 1.0 Transitional。且iframe是放在body标签之内,而frameset、frame是放在body标签之外。

五、综合示例
<html>
<head>
<title>综合示例</title>
</head>
<frameset cols="25%,*">
<frame src="menu.htm" scrolling="no" name="Left">
<frame src="page1.htm" scrolling="auto" name="Main">
<noframes>
<body>
<p>对不起,您的浏览器不支持“框架”!</p>
</body>
</noframes>
</frameset>
</html>
【说明】
<noframes></noframes>标志对也是放在<frameset></frameset>标志对之间,用来在那些不支持框架的浏览器中显示文本或图像信息。在此标志对之间先紧跟<body></body>标志对,然后才可以使用我们熟悉的任何标志。

最后需要说明一点:
如果将代码按照我以上所写写到VS中报错的话,例如:
Frameset使用教程
或者
Frameset使用教程
解决方法如下:
工具→选项→文本编辑器→HTML→验证→Internet Explorer 6.0

好了,通过以上内容,大家再多加练习,就会慢慢熟悉frame的相关知识了,用好了的话你会发现真的挺好。至于frame系列标签的事件方法,一般用的不是非常多,需要的话,大家自己再查吧。【

以上网络不推荐,如果新手,那么frame框架就是个坑,需要解决很多问题,建议实际在用可尝试以下其中之一使用

这段代码可去除滚动条,并全屏显示,推荐:

<iframe name="manage" src="first.html" scrolling="no" frameborder="0" width="100%"  onload="this.height=0;var fdh=(this.Document?this.Document.body.scrollHeight:this.contentDocument.body.offsetHeight);this.height=(fdh>700?fdh:700)" ></iframe>

为避免弹框问题可是尝试本人使用的:

但有一个问题,主页面的类名不能和分页面的类名写一样

方式一:

 <ul id="left-Logo">
                <li><a target="depart-Manage.aspx" onselectstart="return false;">管理1</a></li>
                <li><a target="account-Manage.aspx" onselectstart="return false;">管理2</a></li>
                <li><a target="task-Manage.aspx" onselectstart="return false;">管理3</a></li>
                <li><a target="bug-Overview.aspx" onselectstart="return false;">概况</a></li>
                <li><a target="bug-me.aspx" onselectstart="return false;">分配1</a></li>
                <li><a target="commit-record.aspx" onselectstart="return false;">分配2</a></li>
                <li><a target="bug-all.aspx" onselectstart="return false;">所有</a></li>
                <li><a target="bug-count.aspx" onselectstart="return false;">统计</a></li>
                <li class="left-four"><a target="bug-Manage.aspx" onselectstart="return false;">管理</a></li>

            </ul>

<div id="right">

</div>

  

 $.get("first.aspx", function (data) {
            $("#right").html(data);
        });
        $("#left-Logo li").click(function () {
            var current = $(this);
            $("#left-Logo li").css("background", "#1f64a5");
            $("#left-Logo li a").css("color", "#168edf");
            $(this).css("background", "#3a8fd2");
            $(this).children().css("color", "#e6f2fd");
            target = current.find('a').attr('target');
            $.get(target, function (data) {
                $("#right").html(data);
            })
        });

方式二:

<div class="manage">
            <!--导航-->
            <div class="manage-header">
                <ul>
                    <li target="manage" title="person-Manage" class="two">
                        <a>管理</a>
                        <ul class="selectlist">
                            <li title="depart-Manage,点击文字">
                                <a target="manage" href="depart-Manage.html">管理1</a>
                            </li>
                            <li title="account-Manage,点击文字">
                                <a target="manage" href="account-Manage.html">管理2</a>
                            </li>
                        </ul>
                    </li>
                    <li title="task-Manage,点击文字">
                        <a target="manage" href="task-Manage.html">管理3</a>
                    </li>
                    <li title="bug-Submit,点击文字">
                        <a target="manage" href="bug-Manage.html">管理4</a>
                    </li>

                </ul>
                <div class="exit">
                    <span>退出</span>
                </div>

            </div>

            <!--内容-->
            <iframe name="manage" src="first.html" scrolling="no" frameborder="0" width="100%"  onload="this.height=0;var fdh=(this.Document?this.Document.body.scrollHeight:this.contentDocument.body.offsetHeight);this.height=(fdh>700?fdh:700)" ></iframe>
        </div>

方式三:使用load()

$(document).ready(function(){
 $("#h1").load("first.html");
 $("#h2").load("second.html");
 $("#h3").load("third.html");
 $("#h4").load("fourth.html");
})
上一篇:flex集成IFrame,IFrame集成UnityWebPlayer直接通讯调用解决方式


下一篇:python3爬虫再探之EXCEL