jQuery中弹出iframe内嵌页面元素到父页面并全屏化
iframe和弹窗这些词对于js高手来说都是耳熟能详的东西,作为一个新人来说,还在学习阶段的我就在工作中遇到这么一个奇葩的需求,要在引入的iframe页面里做一个全屏化的功能.
粗略一看,这还不容易,模拟下F11的功能键什么的,于是网上一搜还真有一大堆关于全屏化的案例,遂借来用之.
然后高高兴兴的拿一个没有iframe引入的页面做了个测试页面查看全屏化功能效果,代码如下(fullScreenPage.html):
<!DOCTYPE html> <html xmlns="http://.w3./1999/xhtml"> <head> <title>Control Tower</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body style="margin: 0px;height: 100%;width: 100%;"> <div id="buttonPanel" style="position: absolute;left: 25%;z-index:100"> <input id="full_screen_open" type="button" value="打开全屏"> <input id="full_screen_close" type="button" value="退出全屏" style="display: none"> </div> <div id="container" style="display:table;height: 50%;width: 50%;background-color: #004981;position:absolute;left: 25%;"> <div style="display:table-cell;height: 50%;width: 50%;text-align: center;vertical-align: middle;border: 2px solid #DDDDDD;"> <font id="font" size="30"></font> </div> </div> </body> <script src="./scripts/jquery/jquery-1.11.3.js" type="text/javascript"></script> <script type="text/javascript"> $("#full_screen_open").on("click",function(){ requestFullScreen($("#container")['0']); $("#font").empty(); $("#font").text("已打开全屏化"); }); var requestFullScreen = function(element) { var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullScreen; if (requestMethod) { requestMethod.call(element); } else if (typeof window.ActiveXObject !== "undefined") { var wscript = new ActiveXObject("WScript.Shell"); if (wscript !== null) { wscript.SendKeys("{F11}"); } } } </script> </html>
嗯,我自己觉得这个效果真的是不要太棒了,还做了浏览器兼容(FireFox=mozRequestFullScreen;W3C=requestFullscreen;Chrome等=webkitRequestFullScreen;ie11=msRequestFullscreen).....
于是,我立马放到项目里,结果是什么样子呢?执行狼蚁网站SEO优化的代码(parentPage.html)就知道了....
<!DOCTYPE html> <html xmlns="http://.w3./1999/xhtml"> <head> <title>Control Tower</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body style="margin: 0px;height: 100%;width: 100%;"> <div id="parentContainer" style="height: 75%;width: 75%;position:absolute;left: 12.5%;border: 2px solid red;"> <!-- 蓝色边框以内的内容是引入的iframe页面内容,也是需要做全屏化功能的页面 --> <iframe src="fullScreenPage.html" style="border: 2px solid blue;height: 100%;width: 100%;"></iframe> </div> </body> </html>
哦豁,好像没生效,那么为什么呢?
很明显没有起作用,那么怎么办呢?既然引入的子页面iframe不生效,是不是从父页面或许就可以了?
那就赶紧试试找到父类并执行全屏功能,把页面(fullScreenPage.html)改一改,代码如下
<!DOCTYPE html> <html xmlns="http://.w3./1999/xhtml"> <head> <title>Control Tower</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body style="margin: 0px;height: 100%;width: 100%;"> <div id="buttonPanel" style="position: absolute;left: 25%;z-index:100"> <input id="full_screen_open" type="button" value="打开全屏"> <input id="full_screen_close" type="button" value="退出全屏" style="display: none"> </div> <div id="container" style="display:table;height: 50%;width: 50%;background-color: #004981;position:absolute;left: 25%;"> <div style="display:table-cell;height: 50%;width: 50%;text-align: center;vertical-align: middle;border: 2px solid #DDDDDD;"> <font id="font" size="30"></font> </div> </div> </body> <script src="./scripts/jquery/jquery-1.11.3.js" type="text/javascript"></script> <script type="text/javascript"> $("#full_screen_open").on("click",function(){ / 获取父类的document / var parentDoc = parent.document; / 定义一个接收元素的变量 / var thisIframe = null; / 用jQuery遍历父类的所有iframe,找到我引入的那个iframe, 假设我不知道是哪个页面要引入我的iframe,引入我的iframe的src肯定会有引入这个页面的名字, 所以通过这个去检索,一定能找到引入这个页面的iframe,然后把这个iframe的元素全屏化也就是把原来的页面全屏化 / $("iframe",window.parent.document).each(function(index,e){ if (e.src.indexOf("fullScreenPage.html") > 0) { thisIframe = e; return false; } }); requestFullScreen(thisIframe); $("#font").empty(); $("#font").text("已打开全屏化"); }); var requestFullScreen = function(element) { var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullScreen; if (requestMethod) { requestMethod.call(element); } else if (typeof window.ActiveXObject !== "undefined") { var wscript = new ActiveXObject("WScript.Shell"); if (wscript !== null) { wscript.SendKeys("{F11}"); } } } </script> </html>
哈哈,改了之后发现果然可以了,问题解决。
jQuery还请自行下载并导入引用,我这里就不细说了.
这里分享一个jQuery下载的地址
以上所述是长沙网络推广给大家介绍的jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程