A网页高度随B内容而自然变化兼容各种浏览器

今天是星期一,昨天又没有睡好,眼睛干干的,还有点痛疼,于是不想干啥。但是心里又不觉得过意不去,浪费时间呀,考虑再三把自己前面实现的一个东西发了上来。算是今天的功劳,没有过多的文字描述,纯粹是贴图片和代码,这个功能其实在一个群里有人问过,我也发了。不知道他用了没有。

实现效果如下图:

关键代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="iframeparent1.aspx.cs" Inherits="autoSearch.iframeparent1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function addEvt(ifr) {
            var doc = ifr.contentWindow.document;
            doc.onclick = function () {
                ifr.style.height = (document.all ? doc.body.scrollHeight : doc.body.offsetHeight) + ‘px‘;
               // ifr.style.height = doc.body.clientHeight//有根节点可以使用根节点,兼容性比较好,opera,safari,google的浏览器都可以兼容,如果使用body.offsetHeight只在ff下有效果
            }
            ifr.style.height = doc.body.scrollHeight + ‘px‘;

        }

</script>

<style type="text/css">
    #myiframe
    {

    }
</style>
</head>
<body〉
    <form id="form1" runat="server">
    <div>显示条数:<asp:TextBox ID="TextBox1" runat="server">5</asp:TextBox>
    <asp:Button ID="btnset"  runat="server" Text="设置" onclick="btnset_Click" />

    </div>

    <div>
        <iframe  src="iframeson1.aspx?hc=<%=hc%>"  id="myiframe" name="myiframe" width="100%"   align="middle"
                scrolling="no" frameborder="0" target="_parent" hspace="0" vspace="0" onload="addEvt(this)" ></iframe>

    </div>
    </form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="iframeson1.aspx.cs" Inherits="autoSearch.iframeson1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <style type="text/css" >
        body
        {
            text-align:center;  height:auto;
        }
        #data th{background:#EEE; border-bottom:1px solid #CCC; padding:4px; text-align:left;}
#data td{border:1px solid #EEE; padding:4px;}
.ou{background-color:#FFF;}
.ji{background-color:#CCC;}

 .a_s2
        {
            font-size: 16px;
            text-decoration: none;
            display: block;
            font-weight: bold;
            text-align: center;
            height: 35px;
            line-height: 35px;
            width: 100px;
            background: #0177FF;
            color: #fff;
            float:right;
        }
    </style>
    <script src="jquery-1.5.1.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            //异步请求
            $("#btnSearch").bind("click", function () {
                $("#dadiv").html("");
                var i = $("#TextBox1").val();
                $.ajax({
                    type: "GET",
                    url: "iframetable.aspx",
                    data: "sortBy=" + i,
                    beforeSend: function (XMLHttpRequest) {
                        //$("#sdiv").html("<img style=‘margin:40px 0 0 10px;‘ <img src=‘images/022.gif‘ />&nbsp;数据加载中...");
                    },
                    success: function (fanhuidata) {
                        //$("#sdiv").remove($("#spadd").html());
                        $("#dadiv").append(fanhuidata);
                        window.parent.document.getElementById("myiframe").style.height = $(document.body).height() + 50 + "px";
                        linecolor();
                    },
                    error: function (xx) {

                        alert(xx)

                    }
                });

                //                alert("9999");
                //                var frm = window.parent.document.getElementById("myiframe");
                //               // var doc = ifr.contentWindow.document;
                //                alert("1010");
                //                alert(frm);
                //                onmousedown = function () {
                //                    // ifr.style.height = (document.all ? doc.body.scrollHeight : doc.body.offsetHeight) + ‘px‘;
                //                    alert(frm.frmame);
                //                    ifr.style.height = doc.body.clientHeight//有根节点可以使用根节点,兼容性比较好,opera,safari,google的浏览器都可以兼容,如果使用body.offsetHeight只在ff下有效果
                //                }
            });
        });

        function linecolor() {
            var obj = document.getElementById("data");
            for (var i = 0; i < obj.rows.length; i++) {
                i % 2 == 0 ? obj.rows[i].className = "ou" : obj.rows[i].className = "ji";
            }
        }

        function getObject(objectId) {
            if (document.getElementById && document.getElementById(objectId)) {
                return document.getElementById(objectId);
            } else if (document.all && document.all(objectId)) {
                return document.all(objectId);
            } else if (document.layers && document.layers[objectId]) {
                return document.layers[objectId];
            } else {
                return false;
            }
        }

        function showHide(e, objname) {
            var obj = getObject(objname);
            if (obj.style.display == "none") {
                //$(obj).show(‘0.5‘);
                obj.style.display = "";
                //e.className = "minus";
                //e.src = "../images/newhotels/i2.jpg"
                // $(e).parent().parent().removeClass("bg1"); //tr
            } else {
                obj.style.display = "none";
                //e.src = "../images/newhotels/i3.jpg"
                // $(e).parent().parent().addClass("bg1"); //tr
                // e.className = "plus";
            }
        }
</script>
</head>
<body onload="linecolor();" >
    <form id="form1" runat="server">
    <div>显示条数:   <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="set" runat="server" Text="设置" onclick="set_Click" /></div>
  <div class="a_s2" id="btnSearch">查看价格 </div>
    <div style="margin:0 auto; text-align:center;" id="dadiv">
          <%getdata(5); %>
          <%--<table style=" width:100%; height:auto" id="data">
    <tr><td style="height:10px;width:100%;" onclick="showHide(this,‘detailsItem_1‘)">我是第1条</td></tr>
    <tr id="detailsItem_1" style="display:none"><td style="height:50px;width:100%;">我是内容1,我是内容1</td></tr>
     <tr><td style="height:10px;width:100%;" onclick="showHide(this,‘detailsItem_2‘)">我是第2条</td></tr>
    <tr id="detailsItem_2" style="display:none"><td style="height:50px;width:100%;">我是内容2,我是内容2</td></tr>
     <tr><td style="height:10px;width:100%;" onclick="showHide(this,‘detailsItem_3‘)">我是第3条</td></tr>
    <tr id="detailsItem_3" style="display:none"><td style="height:50px;width:100%;">我是内容3,我是内容3</td></tr>
     <tr><td style="height:10px;width:100%;" onclick="showHide(this,‘detailsItem_4‘)">我是第4条</td></tr>
    <tr id="detailsItem_4" style="display:none"><td style="height:50px;width:100%;">我是内容4,我是内容4</td></tr>
    </table>--%>
    </div>
    </form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;

namespace autoSearch
{
    public partial class iframetable : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                int i = int.Parse(Request.QueryString["sortBy"].ToString());
                getdata(i);
            }
        }
        public void getdata(int i)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<table style=‘ width:100%; height:auto‘id=‘data‘>");
            for (int n = 1; n <= i; n++)
            {
                sb.Append("<tr><td style=‘height:10px;width:100%;‘onclick=‘showHide(this,\"detailsItem_" + n + "\")‘>我是第" + n + "条</td></tr>");
                sb.Append(" <tr id=‘detailsItem_" + n + "‘ style=‘display:none‘><td style=‘height:50px;width:100%;‘>我是内容" + n + "我是内容" + n + "</td></tr>");
            }
            sb.Append("</table>");
            Response.Write(sb.ToString());
        }
    }
}

上面的代码是我花了三天时间在网上找的,然后自己修改而成。大家可以根据自己的需求更改。也是学习iframe的好例子。 这算是一次分享吧!

时间: 2024-10-07 17:44:04

A网页高度随B内容而自然变化兼容各种浏览器的相关文章

ClipboardData实现复制内容到剪贴板,兼容各种浏览器

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="registAdd.aspx.cs" Inherits="registAdd" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server&

JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度

网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线的宽) 网页可见区域高:document.body.offsetHeight (包括边线的宽) 网页正文全文宽:document.body.scrollWidth 网页正文全文高:document.body.scrollHeight 网页被卷去的高:document.body.scr

JavaScript获取网页高度和宽度

JavaScript获取网页高度宽度 /********************  * 取窗口滚动条高度  ******************/ function getScrollTop() {     var scrollTop=0;     if(document.documentElement&&document.documentElement.scrollTop)     {         scrollTop=document.documentElement.scrollTo

网页高度自适应的问题

目标:实现左右两边的高度一致 问题:在各个浏览器下,使用jquery来获取高度出现问题 今天使用jquery(1.11.1)来获取左右两边的高度,并设置左边高度为右边高度,但是中途发现当内容区域有图片的时候,加载的高度只能识别到文字区域的高度.使用谷歌浏览器(版本 35.0.1916.153)测试,发现只要给图片设置了固定高度则会正常识别高度,如果没有设置则不能识别.换IE9浏览器测试,是可以正常识别高度. 因为我这个识别高度主要是用来设置左边的边栏有背景色,并且设置高度和右边内容区域高度一致即

获取屏幕宽度、浏览器宽度、网页高度,宽度信息

视图模式innerWidth/innerHeight属性(窗口大小) window.innerHeightwindow.innerWidth window.pageYOffset:Netscape属性,指的是滚动条顶部到网页顶部的距离 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线的宽) 网页可见区域高:document.bod

(模板)网页游戏用的“内容区”的“游戏下载”模板

网页游戏用的"内容区"的下载模板 <style> .article-main{ width:939px; } /*下载中心*/ .big_pub_right { width:960px; } .faq p { line-height:25px; } .pub_title { background:#353b42; height:84px; color:#969db0; line-height:84px; padding:0px 20px; } .pub_title a {

jQuery简单实现iframe的高度根据页面内容自适应的方法(转)

本文实例讲述了jQuery简单实现iframe的高度根据页面内容自适应的方法.分享给大家供大家参考,具体如下: 方式1: //注意:下面的代码是放在和iframe同一个页面中调用 $("#iframeId").load(function () { var mainheight = $(this).contents().find("body").height() + 30; $(this).height(mainheight); }); 方式2: //注意:下面的代码

ASP.NET中Literal控件的使用方法(用于向网页中动态添加内容)

原文:https://www.jb51.net/article/82855.htm 可以将 Literal 控件用作网页上其他内容的容器.Literal 控件最常用于向网页中动态添加内容.简单的讲,就是可以把 HTML 代码写到 Literal 控件上,直接呈现出来. 一.常见Literal属性 属性 描述 Text 指定 Literal 控件中显示的文本.在用户的浏览器中,这会显示为 HTML. Mode 指定控件如何处理添入其中的标记. 二.基础用法 前台 LiteralTest.aspx

网页兼容各种浏览器

关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助.一.CSS HACK 以下两种方法几乎能解决现今所有HACK.1, !important随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.) <style> #wrapper { width: 100px!important; width: 80px; } </sty