mg4377娱乐娱城官网_mg4377娱乐手机版_www.mg4377.com

当前位置: mg4377娱乐娱城官网 > www.mg4377.com > 正文

www.mg4377.com:怎么着将一个HTML页面嵌套在另一个

时间:2019-11-09 11:55来源:www.mg4377.com
HTML5中与页面展现相关的API 2015/05/15 · HTML5 ·HTML5 初稿出处:涂根华的博客    在HTML5中,增加了2个与页面呈现相关的API,分别是Page VisibilityAPI与Fullscreen API; 成效分别如下: Page Visibi

HTML5中与页面展现相关的API

2015/05/15 · HTML5 · HTML5

初稿出处: 涂根华的博客   

在HTML5中,增加了2个与页面呈现相关的API,分别是Page Visibility API与Fullscreen API; 成效分别如下:

Page Visibility API  是指当页面变为最小化状态恐怕客商将浏览器标签切换来别的标签时会触发。

Fullscreen API 是将页面全部或页面中有些局地区域设为全屏。

Page Visibility API的接纳场馆如下:

  1. 七个应用程序中全部多幅图片的幻灯片式的连天播放效果,当页面变为不可以预知状态(最小化状态只怕将顾客浏览器标签切换成任何标签时),图片停播,当页面变为可以知道状态时,图片继续播放。
  2. 在叁个实时展现服务器端消息的应用程序中,当页面处于不可知状态(最小化状态或许将客商浏览器标签切换来其余标签时),结束定期向服务器端央浼数据的拍卖,当页面变为可以见到状态,继续实践按期向服务器端央求数据的管理。
  3. 在三个富有播放录像功用的应用程序中,当页面处于不可以预知状态(最小化状态只怕将顾客浏览器标签切换成其余标签时),暂停止播放放摄像,当页面变为可以知道状态时,继续播放录像。

浏览器扶助程度:Firefox10 ,chrome14 ,IE10 ;

实现Page Visibility API

在采纳Page Visibility API时,大家首先须要判别当前顾客所选择的浏览器以致该浏览器是不是支持。代码如下剖断:

JavaScript

if(typeof document.hidden !== 'undefined') { hidden = 'hidden'; visibilityChange = 'visibilitychange'; }else if(typeof document.mozHidden !== 'undefined') { hidden = 'mozHidden'; visibilityChange = 'mozvisibilitychange'; }else if(typeof document.msHidden !== 'undefined') { hidden = 'msHidden'; visibilityChange = 'msvisibilitychange'; }else if(typeof document.webkitHidden !== 'undefined') { hidden = 'webkitHidden'; visibilityChange = 'webkitvisibilitychange'; }

1
2
3
4
5
6
7
8
9
10
11
12
13
if(typeof document.hidden !== 'undefined') {
    hidden = 'hidden';
    visibilityChange = 'visibilitychange';
}else if(typeof document.mozHidden !== 'undefined') {
    hidden = 'mozHidden';
    visibilityChange = 'mozvisibilitychange';
}else if(typeof document.msHidden !== 'undefined') {
    hidden = 'msHidden';
    visibilityChange = 'msvisibilitychange';
}else if(typeof document.webkitHidden !== 'undefined') {        
    hidden = 'webkitHidden';
    visibilityChange = 'webkitvisibilitychange';
}

如上,在Page Visibility  API中,能够因而document对象的hidden属性值来判别页面是或不是处于可以知道状态,当页面处于可知状态时属性值为false,当页面处于不可以知道状态时属性值为true。

在Page Visibility中,可以透过document对象的visibilityState属性值来剖断页面包车型客车可知状态。该属性值为三个字符串,其含义如下所示:

    visible: 页面内容部分可以预知,当前页面位于客商正在查阅的浏览器标签窗口中,且浏览器窗口未被最小化。

    hidden: 页面内容对客户不可以预知。当前页面不在客商正在查阅的浏览器标签窗口中,或浏览器窗口已被最小化。

    prerender: 页面内容已被预渲染,可是对客户不可知。

www.mg4377.com:怎么着将一个HTML页面嵌套在另一个页面中,在HTML页面中显得。于今大家来看二个demo,页面中有二个video成分与八个”播放”按键,顾客单击”播放”开关时 按键文字变为 ’暂停”,同时开首广播video成分的摄像,当页面变为最小化状态或顾客浏览器标签切换来其余标签时候,摄像被中断播放,当页面恢复符合规律状态或客户将浏览器标签切回页面所在标签时,录制持续播放。

HTML代码如下:

JavaScript

<video id="videoElement" controls width=640 height=360 autoplay> <source src="Wildlife/Wildlife.ogv" type='video/ogg; codecs="theora, vorbis"'/> <source src="Wildlife/Wildlife.webm" type='video/webm' > <source src="Wildlife/Wildlife.mp4" type='video/mp4'> </video> <button id="btnPlay" onclick="PlayOrPause()">播放</button> <div style="height:1500px;"></div>

1
2
3
4
5
6
7
<video id="videoElement" controls width=640 height=360 autoplay>
    <source src="Wildlife/Wildlife.ogv" type='video/ogg; codecs="theora, vorbis"'/>
    <source src="Wildlife/Wildlife.webm" type='video/webm' >
    <source src="Wildlife/Wildlife.mp4" type='video/mp4'>
</video>
<button id="btnPlay" onclick="PlayOrPause()">播放</button>
<div style="height:1500px;"></div>

JS代码如下:

JavaScript

var hidden, visibilityChange, videoElement; if(typeof document.hidden !== 'undefined') { hidden = 'hidden'; visibilityChange = 'visibilitychange'; }else if(typeof document.mozHidden !== 'undefined') { hidden = 'mozHidden'; visibilityChange = 'mozvisibilitychange'; }else if(typeof document.msHidden !== 'undefined') { hidden = 'msHidden'; visibilityChange = 'msvisibilitychange'; }else if(typeof document.webkitHidden !== 'undefined') { hidden = 'webkitHidden'; visibilityChange = 'webkitvisibilitychange'; } document.addEventListener(visibilityChange,handle,false); videoElement = document.getElementById("videoElement"); videoElement.add伊夫ntListener('ended',videoEnded,false); videoElement.add伊夫ntListener('play',videoPlay,false); videoElement.addEventListener('pause',videoPause,false); // 如若页面变为不可知状态 则暂停摄像播放 // 要是页面变为可以见到状态,则继续录像播放 function handle() { // 通过visibilityState属性值判别页面包车型客车可以见到状态 console.log(document.visibilityState); if(document[hidden]) { videoElement.pause(); }else { videoElement.play(); } } // 播放录制function play() { videoElement.play(); } // 暂停止播放放 function pause() { videoElement.pause(); } function PlayOrPause() { if(videoElement.paused) { videoElement.play(); }else { videoElement.pause(); } } function videoEnded(e) { videoElement.currentTime = 0; this.pause(); } function videoPlay(e) { var btnPlay = document.getElementById("btnPlay"); btnPlay.innerHTML = "暂停"; } function videoPause(e) { var btnPlay = document.getElementById("btnPlay"); btnPlay.innerHTML = "播放"; }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
var hidden,
visibilityChange,
videoElement;
if(typeof document.hidden !== 'undefined') {
    hidden = 'hidden';
    visibilityChange = 'visibilitychange';
}else if(typeof document.mozHidden !== 'undefined') {
    hidden = 'mozHidden';
    visibilityChange = 'mozvisibilitychange';
}else if(typeof document.msHidden !== 'undefined') {
    hidden = 'msHidden';
    visibilityChange = 'msvisibilitychange';
}else if(typeof document.webkitHidden !== 'undefined') {
    hidden = 'webkitHidden';
    visibilityChange = 'webkitvisibilitychange';
}
document.addEventListener(visibilityChange,handle,false);
videoElement = document.getElementById("videoElement");
videoElement.addEventListener('ended',videoEnded,false);
videoElement.addEventListener('play',videoPlay,false);
videoElement.addEventListener('pause',videoPause,false);
// 如果页面变为不可见状态 则暂停视频播放
// 如果页面变为可见状态,则继续视频播放
function handle() {
    // 通过visibilityState属性值判断页面的可见状态
    console.log(document.visibilityState);
    if(document[hidden]) {
        videoElement.pause();    
    }else {
        videoElement.play();
    }
}
// 播放视频
function play() {
    videoElement.play();
}
// 暂停播放
function pause() {
    videoElement.pause();
}
function PlayOrPause() {
    if(videoElement.paused) {
        videoElement.play();
    }else {
        videoElement.pause();
    }
}
function videoEnded(e) {
    videoElement.currentTime = 0;
    this.pause();
}
function videoPlay(e) {
    var btnPlay = document.getElementById("btnPlay");
    btnPlay.innerHTML = "暂停";
}
function videoPause(e) {
    var btnPlay = document.getElementById("btnPlay");
    btnPlay.innerHTML = "播放";
}

实现Fullscreen API

在HTML5中,新增添了一个Fullscreen API,其职能是将页面全部或页面中有些局地区域设为全屏彰显状态。

浏览器援救程度:Firefox10 ,chrome16 ,Safari5.1

在Fullscreen API中,能够通过DOM对象的根节点指标或某些成分的requestFullscreen属性值和实践相对应的主意来推断浏览器是或不是帮衬Fullscreen API。代码如下:

JavaScript

var docElm = document.documentElement; if(docElm.requestFullscreen) { docElm.requestFullscreen(); }else if(docElm.mozRequestFullScreen) { docElm.mozRequestFullScreen(); }else if(docElm.webkitRequestFullScreen) { docElm.webkitRequestFullScreen(); }

1
2
3
4
5
6
7
8
var docElm = document.documentElement;
if(docElm.requestFullscreen) {
        docElm.requestFullscreen();
}else if(docElm.mozRequestFullScreen) {
        docElm.mozRequestFullScreen();
}else if(docElm.webkitRequestFullScreen) {
        docElm.webkitRequestFullScreen();
}

在Fullscreen API中,也得以因而DOM对象或有个别成分的exitFullscreen与CanvelFullScreen属性和方法将近年来页面或有个别成分设定为非全屏显示状态。

日常来讲代码:

JavaScript

if(document.exitFullscreen) { document.exitFullscreen(); }else if(document.mozCancelFullScreen) { document.mozCancelFullScreen(); }else if(document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); }

1
2
3
4
5
6
7
if(document.exitFullscreen) {
    document.exitFullscreen();
}else if(document.mozCancelFullScreen) {
    document.mozCancelFullScreen();
}else if(document.webkitCancelFullScreen) {
    document.webkitCancelFullScreen();
}

在Fullscreen API中,能够由此监听DOM对象或有个别成分的fullscreenchange事件(当页面或因素从非全屏展现状态形成全屏显示状态,或从全屏展现状态成为非全屏呈现状态时触发)。代码如下:

JavaScript

document.addEventListener('fullscreenchange',function(){},false); document.addEventListener('mozfullscreenchange',function(){},false); document.addEventListener('webkitfullscreenchange',function(){},false);

1
2
3
document.addEventListener('fullscreenchange',function(){},false);
document.addEventListener('mozfullscreenchange',function(){},false);
document.addEventListener('webkitfullscreenchange',function(){},false);

在css样式代码中,我们得以行使伪类选拔器来单独钦定处于全屏展现状态的页面或因素样式:

JavaScript

html:-moz-full-screen { background:red; } html:-webkit-full-screen { background:red; } html:fullscreen { background:red; }

1
2
3
4
5
6
7
8
9
html:-moz-full-screen {
    background:red;
}
html:-webkit-full-screen {
    background:red;
}
html:fullscreen {
    background:red;
}

末段我们来看多少个demo,在页面中有四个开关,点击后,页面会形成全屏状态,再点击后,页面会脱离全屏;

HTML代码如下:

JavaScript

<input type="button" id="btnFullScreen" value="页面全屏显示" onclick="toggleFullScreen();"/> <div style="width:百分百;" id="fullscreentState">非全屏突显</div>

1
2
<input type="button" id="btnFullScreen" value="页面全屏显示" onclick="toggleFullScreen();"/>
<div style="width:100%;" id="fullscreentState">非全屏显示</div>

Javascript如下:

JavaScript

var docElm = document.documentElement; var fullscreentState = document.getElementById("fullscreentState"); var btnFullScreen = document.getElementById("btnFullScreen"); fullscreentState.style.height = docElm.clientHeight 'px'; document.addEventListener('fullscreenchange',function(){ fullscreentState.innerHTML = (document.fullscreen) ? "全屏显示" : "非全屏显示"; },false); document.addEventListener('mozfullscreenchange',function(){ fullscreentState.innerHTML = (document.mozFullscreen) ? "全屏展现" : "非全屏展现"; },false); document.add伊夫ntListener('webkitfullscreenchange',function(){ fullscreentState.innerHTML = (document.webkitFullscreen) ? "全屏展现" : "非全屏突显"; },false); function toggleFullScreen() { if(btnFullScreen.value == '页面全屏显示') { btnFullScreen.value = '页面非全屏展现'; if(docElm.requestFullscreen) { docElm.requestFullscreen(); }else if(docElm.mozRequestFullScreen) { docElm.mozRequestFullScreen(); }else if(docElm.webkitRequestFullScreen) { docElm.webkitRequestFullScreen(); } }else { if(document.exitFullscreen) { document.exitFullscreen(); }else if(document.mozCancelFullScreen) { document.mozCancelFullScreen(); }else if(document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } btnFullScreen.value = "页面全屏突显"; } }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var docElm = document.documentElement;
var fullscreentState = document.getElementById("fullscreentState");
var btnFullScreen = document.getElementById("btnFullScreen");
fullscreentState.style.height = docElm.clientHeight 'px';
document.addEventListener('fullscreenchange',function(){
    fullscreentState.innerHTML = (document.fullscreen) ? "全屏显示" : "非全屏显示";
},false);
document.addEventListener('mozfullscreenchange',function(){
    fullscreentState.innerHTML = (document.mozFullscreen) ? "全屏显示" : "非全屏显示";
},false);
document.addEventListener('webkitfullscreenchange',function(){
    fullscreentState.innerHTML = (document.webkitFullscreen) ? "全屏显示" : "非全屏显示";
},false);
function toggleFullScreen() {
    if(btnFullScreen.value == '页面全屏显示') {
        btnFullScreen.value = '页面非全屏显示';
        if(docElm.requestFullscreen) {
            docElm.requestFullscreen();
        }else if(docElm.mozRequestFullScreen) {
            docElm.mozRequestFullScreen();
        }else if(docElm.webkitRequestFullScreen) {
            docElm.webkitRequestFullScreen();
        }
    }else {
        if(document.exitFullscreen) {
            document.exitFullscreen();
        }else if(document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
        }else if(document.webkitCancelFullScreen) {
            document.webkitCancelFullScreen();
        }
        btnFullScreen.value = "页面全屏显示";
    }
}

赞 收藏 评论

www.mg4377.com 1

译文来源:

二种办法:

这一个在做网页中常要选拔,有些通用的内容可集中放在三个页面文件中,别的要用到这几个剧情的页面只需求包罗(援用卡塔 尔(英语:State of Qatar)那一个通用文件就能够。那样方便维护,假使有为数不菲网页,当通用内容须求改良时,只改三个文书即可了,没有需求各类文件单独修正。

原文:HTML5 Page Visibility API

后端的相通管理程序:Imge.ashx

最非凡的选择比方页脚的版权消息等剧情能够投身多个叫作footer.html文件里, 然后其余页面文件在页面内容的最后饱含那一个文件就能够了,具体育赛事例上边有。

译文:HTML 5的页面可视性API

www.mg4377.com 2www.mg4377.com 3

要 html文件嵌套,最简便的不二秘技是选择SSI(Server Side Include)技能,也便是在劳动器端多个文件就被合併了。除了个别无需付费网页存放服务外,大约具备的网页寄放服务器都援救SSI。那也是八个相比推荐的点子,它与ASP和ASP.NET网页使用的语法完全一样。如若网址管理员偏侧利用PHP或JSP的话,语法会稍有差别。

译者:dwqs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.UI.WebControls;
 6 
 7 namespace Test
 8 {
 9     /// <summary>
10     /// Imge 的摘要说明
11     /// </summary>
12     public class Imge : IHttpHandler
13     {
14 
15         public void ProcessRequest(HttpContext context)
16         {
17 
18             #region 方法一
19             System.IO.MemoryStream ms = new System.IO.MemoryStream();
20             System.IO.Stream str = new FileUpload().PostedFile.InputStream;
21             System.Drawing.Bitmap map = new System.Drawing.Bitmap(str);
22             map.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
23             context.Response.ClearContent();
24             context.Response.ContentType = "image/Jpeg";
25             context.Response.BinaryWrite(ms.ToArray());  //将二进制字节输出到页面 
26             #endregion
27 
28             #region 方法二
29             System.IO.FileStream fs = new System.IO.FileStream("Filename", System.IO.FileMode.Open, System.IO.FileAccess.Read);
30             byte[] datas = new byte[fs.Length];
31             fs.Read(datas, 0, Convert.ToInt32(fs.Length));
32             fs.Close();
33             context.Response.OutputStream.Write(datas, 0, Convert.ToInt32(fs.Length));
34             context.Response.End();
35             #endregion
36         }
37 
38         public bool IsReusable
39         {
40             get
41             {
42                 return false;
43             }
44         }
45     }
46 }

对于无法利用SSI、ASP、ASP.NET、PHP和JSP等服务器端动态页面语言的事态,这里还将介绍三种顾客端镶嵌的点子:JavaScript和iframe的主意。当那三种顾客端的主意都有超级大的坏处,日常不引入应用。

 www.mg4377.com 4

View Code

上面临各样措施单独具体介绍。

在最先,浏览器并不曾提供选项卡,可是现在主旨全数浏览器都提供了那一个功用。作为八个程序猿,笔者平日会同一时间开发10到16个选项卡,以至有个别时候会在25到30.

HTML页面代码:

1、SSI (Server Side Include)

怎么介绍Page Visibility API呢?

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4     <title></title>
5 </head>
6 <body>
7 <img src="/Imge.ashx" />  <!---图片的src指向Imge.ashx 就可以--->
8 </body>
9 </html>

SSI是少年老成种简易的动态网页制作工夫,可是有个别服务器供给网页文件扩充名称为.shtml才干辨别文件中SSI命令。所以要是你的SSI命令看起来不做事,先别废弃,试着把公文扩充名改为.shtml,或许会中标。假设知道自身的服务器是不是扶持SSI,请看另风流浪漫篇作品。

事先,是不恐怕鲜明哪些选项卡是激活的,哪个未有激活,可是在HTML 5 Visibility API的帮忙下,就足以检查评定客商是不是在浏览有些网址的页面。

 

使用SSI三个局限性是页面必须求放在网页服务器上技巧见到功效,在本土是倒霉调节和测验的。当然,假如非要在本地调节和测量检验,就地点装一个Apache服务器好了。

在此篇作品中,我们将会分晓什么利用HTML 5 Visibility API,而且用三个小demo去发掘页面的情状。在这一个demo中,将依据页面包车型地铁可视性状态弹出文书档案的标题。

比如您想在各类网页的尾部加上同样的版权消息,像

自我评论页面包车型客车可以预知性

© 二〇〇八 技师实验室 版权全体

为了接受Visibility API,大家要先了然四个新的文书档案属性,第多个是document.visibilityState,另一个是document.hidden.它们的效应是见仁见智的。

能够把那行消息放到贰个称为footer.html的公文里,footer.html的内容为:

document.visibilityState有两个区别的值:

<center> © 程序猿实验室 版权全体</center>;

1、hidden:页面在别的显示屏上不可知

那般平等路线下的别的页面文件要包罗footer.html的SSI命令是:

2、prerender:页面在加载,对顾客不可知

<!- #include virtual="footer.html" ->(常用)

3、visible:页面可以看到

或者

4、unloaded:页面卸载(即顾客将离开当前页面卡塔 尔(阿拉伯语:قطر‎

<!- #include file="footer.html" ->

document.hidden是七个布尔值,false表示页面可以知道,true表示页面不可知。

那 两个的大概是平等的,差异之处在于include virtual后边取的是贰个UHighlanderL方式的门路,以致还能推行一个CGI程序并蕴藏其出口结果,若是你的服务器支持CGI的话。而include file后边取的是三个文件系统路径,并且不可能举办CGI程序。两个都能够承担相对路线,所以对地点那一个大约例子,两者的成效是同生龙活虎的。假若您不精通U奥迪Q5L路径与文件系统路径两个的界别的话,就用include virtual

编辑:www.mg4377.com 本文来源:www.mg4377.com:怎么着将一个HTML页面嵌套在另一个

关键词: HTML5 asp.net HTML WEB前台