- 浏览: 1092298 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (290)
- php (65)
- javascript (36)
- html5 (31)
- thinkphp (9)
- mysql (16)
- jquery (13)
- node.js (9)
- css (9)
- android 开发 (8)
- flex (5)
- java (3)
- apache (8)
- linux (8)
- git (5)
- web (5)
- wordpress (9)
- mongodb (2)
- redis (5)
- yaf (6)
- python (4)
- big data (1)
- sphinx (1)
- html (1)
- bootstrap (1)
- vue (1)
- laravel (1)
- test (0)
最新评论
-
July01:
推荐用StratoIO打印控件,支持网页、URL、图片、PD、 ...
如何解决非IE浏览器的web打印 -
flashbehappy:
同一个视频,有mp4,ogg两种格式的。在chrome,fir ...
firefox chrom safari 对video标签的区别 -
xmdxzyf:
可以在网站(www.sosoapi.com)上试下在线表单方式 ...
用swagger-php/ui做API测试 -
flex_莫冲:
a2631500 写道"看了源码,设置Backbon ...
backbone与php交互 -
a2631500:
"看了源码,设置Backbone.emulateJS ...
backbone与php交互
今天要在web中嵌套一个网址或本地HTML,用到了iframe,在电脑上设置scrolling=‘auto’,宽度高度,会有滚动条出现。而在ipad上会全部显示整个网页的宽度高度。scrolling属性无效。原来在html5中的iframe已经只有剩下src的属性。
但是若设置scrolling=‘no’.还是会生效的。页面只显示定义的高度和宽度的大小。设置overflow:hidden都没用。
怎么让ipad safari 中的iframe的内容在固定大小中可滚动?
网上说要用seamless属性。直接写个seamless。但是这个属性ipad的safari不支持。chrome是支持的。
IE6 – Windows: no support
IE7 – Windows: no support
IE8 – Windows – Windows: no support
IE9 beta – Windows: no support
Firefox 3.6 – Windows: no support
Firefox 3.6 – OSX: no support
Firefox 4.0 – beta Windows: no support
Firefox 4.0 – beta OSX: no support
Safari OSX: no support
Chrome 7 – Windows: no support
Chrome 7 – Windows: no support
Chrome 9 – OSX: no support
Opera 11 – OSX: no support
测试例子:
http://www.maxdesign.com.au/jobs/example-seamless/
所以以上方法都无法解决ipad safari中iframe滚动的问题。
解决办法:
在iframe外加一层div,设置样式-webkit-overflow-scrolling:touch; overflow: scroll;
让超出div的内容可以通过touch来滚动。
另外,如果iframe的src不是网址,而是本地的html,则需要给HTML的DOM添加监听事件,让html的body可以监听到touch事件,让嵌套的html也可以滚动。
最终代码
参考:
http://stackoverflow.com/questions/6139564/iframe-size-on-ipad
http://jsfiddle.net/CobaltBlueDW/zHR8s/
http://stackoverflow.com/questions/4804604/html5-iframe-seamless-attribute
但是若设置scrolling=‘no’.还是会生效的。页面只显示定义的高度和宽度的大小。设置overflow:hidden都没用。
怎么让ipad safari 中的iframe的内容在固定大小中可滚动?
网上说要用seamless属性。直接写个seamless。但是这个属性ipad的safari不支持。chrome是支持的。
IE6 – Windows: no support
IE7 – Windows: no support
IE8 – Windows – Windows: no support
IE9 beta – Windows: no support
Firefox 3.6 – Windows: no support
Firefox 3.6 – OSX: no support
Firefox 4.0 – beta Windows: no support
Firefox 4.0 – beta OSX: no support
Safari OSX: no support
Chrome 7 – Windows: no support
Chrome 7 – Windows: no support
Chrome 9 – OSX: no support
Opera 11 – OSX: no support
测试例子:
http://www.maxdesign.com.au/jobs/example-seamless/
所以以上方法都无法解决ipad safari中iframe滚动的问题。
解决办法:
在iframe外加一层div,设置样式-webkit-overflow-scrolling:touch; overflow: scroll;
让超出div的内容可以通过touch来滚动。
另外,如果iframe的src不是网址,而是本地的html,则需要给HTML的DOM添加监听事件,让html的body可以监听到touch事件,让嵌套的html也可以滚动。
var toScrollFrame = function(iFrame, mask) { if (!navigator.userAgent.match(/iPad|iPhone/i)) return false; //do nothing if not iOS devie var mouseY = 0; var mouseX = 0; jQuery(iFrame).ready(function() {//wait for iFrame to load //remeber initial drag motition jQuery(iFrame).contents()[0].body.addEventListener('touchstart', function(e) { mouseY = e.targetTouches[0].pageY; mouseX = e.targetTouches[0].pageX; }); //update scroll position based on initial drag position jQuery(iFrame).contents()[0].body.addEventListener('touchmove', function(e) { e.preventDefault(); //prevent whole page dragging var box = jQuery(mask); box.scrollLeft(box.scrollLeft() + mouseX - e.targetTouches[0].pageX); box.scrollTop(box.scrollTop() + mouseY - e.targetTouches[0].pageY); //mouseX and mouseY don't need periodic updating, because the current position //of the mouse relative to th iFrame changes as the mask scrolls it. }); }); return true; }; toScrollFrame('.myFrame', '.myMask');
最终代码
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <title>wrapScroller demo</title> <link rel="stylesheet" href="../style/wrapScroller.css" type="text/css" media="screen" /> <script type="text/javascript" src="../jquery-1.8.0.min.js"></script> <script type="text/javascript"> </script> </head> <body style="background: #ccc;"> <div> HEADER - use 2 fingers to scroll contents: </div> <div id="scrollee" style="width:300px;height:300px;-webkit-overflow-scrolling:touch; overflow: scroll;"> <iframe id="object" height="90%" width="100%" type="text/html" src="http://en.wikipedia.org/"></iframe> </div> </body> </html>
参考:
http://stackoverflow.com/questions/6139564/iframe-size-on-ipad
http://jsfiddle.net/CobaltBlueDW/zHR8s/
http://stackoverflow.com/questions/4804604/html5-iframe-seamless-attribute
发表评论
-
来自yahoo的web优化规则(YSLOW的23条军规)
2014-09-11 17:53 1676https://developer.yahoo.com/per ... -
ga参数分析
2014-06-25 15:42 684转自http://www.lampblog.net/2011/ ... -
IE8与现代浏览器差异记录
2014-04-09 15:13 9031 不支持.trim()方法 解决方法:用$.trim();代 ... -
如何判断当前窗口是否激活
2013-10-12 17:26 5316http://stackoverflow.com/questi ... -
html5 sse 在chrome、firefox上的不同表现
2013-10-12 12:38 1267虽然两者都实现了html5 sse,但是两者处理方式是不同的。 ... -
PhoneGap3.0发布,使用全新的插件架构
2013-08-05 15:00 1057来源:http://www.newsqueue.net/n/P ... -
让老版本的IE也支持canvas的两种神器
2013-07-26 10:44 6139https://code.google.com/p/explo ... -
使用HTML5的链接预取功能给网站提速
2013-07-25 16:48 992HTML5的链接预取功能(link ... -
慎用manifest
2013-07-18 10:56 4027参考: http://mweb.baidu.com/wp-co ... -
如何让VIDEO tag取消缓存
2013-06-07 12:27 2397video的src是动态生成的。所以会有一个bug,更新了vi ... -
iscroll + sortable element
2013-05-17 20:59 1567为了在iscroll上实现sortable的效果,想了一个星期 ... -
video mediagroup属性说明
2013-05-13 10:37 1011参考: http://www.w3school.com.cn/ ... -
iscroll初始化无法生成滚动条的问题解决
2013-05-10 10:20 7243究其原因是因为iscroll无法取得wrapper的offse ... -
video element in ipad safari
2013-01-11 11:10 2864video元素在ipad safari上的一些API是无法支持 ... -
app cache 在IOS6上的问题
2012-07-11 16:26 1337ios6号称将app cache从5mb提升到25mb。但是 ... -
HTML5 VIDEO
2012-07-05 17:15 6252位置: 若放一个div或图片在html5的video元素的 ... -
icenium使用心得
2012-06-19 12:03 4062icenium包含以下三个 ... -
获取屏幕宽度和高度
2012-05-15 10:06 2735在android上的浏览器有个设置远近的功能,导致获取到的屏幕 ... -
html5 全屏api
2012-05-09 17:14 1936【进入和退出全屏】 // ... -
html5的离线存储applicationCache应用
2012-05-03 15:26 5652需要注意几点: 1、可 ...
相关推荐
Open IFrame In News Table 一款Chrome扩展插件,通过该插件可以右键将网页嵌入的 IFrame 框架 快速使用 新tab 页签打开。
然而,由于浏览器的安全策略,特别是对于第三方cookie的处理,开发者可能会遇到在特定浏览器如Safari、Opera以及某些使用特定内核的搜狗浏览器中无法读取`iframe`内的cookie的问题。这个问题主要源于浏览器对第三方...
### 解决IE、Firefox、Chrome、Safari浏览器中iframe显示高度自适应问题 在Web开发中,`iframe`(Inline Frame)元素常被用于嵌入另一个HTML文档到当前页面中,这种技术为开发者提供了极大的便利,例如加载广告、...
iFrame 自适应高度(兼容所有主浏览器) iFrame 自适应高度是前端开发中常见的问题,很多开发者在搜索引擎中搜索相关解决方案,但大多数文章只能解决静态高度的问题,而忽视了 JS 操作 DOM 之后的动态同步问题。...
基于iframe优雅实现全新的微前端方案,继承iframe的优点,补足 iframe 的缺点,让 iframe 焕发新生。 适合人群:具备一定编程基础,工作1-3年的研发人员 能学到什么: 1、使用postMessage方法来完成基座项目和子...
在网页开发中,`<iframe>`元素是一种非常实用的工具,它允许我们在一个页面中嵌入另一个页面的内容,实现页面的组合或者隔离加载。然而,`<iframe>`的高度自适应问题常常困扰着开发者,尤其是当`<iframe>`内部的内容...
因为有一个项目要用到iframe自适应高度,网上搜索了以下结果无数,不过看来看去都是那...iframe自适应高度,亲测完美兼容IE6_7_8_9,Chrome谷歌浏览器,Opera欧朋浏览器,FireFox火狐浏览器,Mac Safari浏览器等五大浏览器
本篇文章将深入探讨两个关键知识点:`iframe`跨域问题以及`iframe`页面的自适应。 一、`iframe`跨域问题 跨域是Web开发中的一个重要概念,它限制了浏览器从一个源获取另一个源的资源,以保护用户的安全。当`iframe...
// extra height in px to add to iframe in FireFox 1.0+ browsers var FFextraHeight = getFFVersion >= 0.1 ? 16 : 0; function dyniframesize(iframename) { var pTar = null; if (document.getElementById) ...
这个库允许的高度与同跨域iframe来适应他们所包含的内容的宽度自动调整大小。它最常见的问题与使用iframes提供一系列的功能,其中包括: 高度和宽度大小的iframe内容大小。 作品以多个嵌套的iframe。 跨域iframe域...
本实例“iframe对另一个iframe控制的Demo”展示了如何通过JavaScript或者jQuery实现一个iframe对另一个iframe的交互,以及如何控制iframe的显示与隐藏。这种技术广泛应用于构建复杂的Web应用程序,如页面内的多窗口...
文章中提到Internet Explorer、Google Chrome、Opera和Safari等浏览器在设置`scrolling`属性时可能会遇到问题。这可能是因为某些浏览器不遵循标准,或者有特定的实现方式,导致属性设置未能按预期工作。因此,在实际...
然而,有时我们可能希望在`iframe`内禁用默认的右键菜单,以防止用户通过右键点击执行某些操作,比如复制、查看源代码等。标题"iframe里无右键菜单"正是针对这一需求,描述中提到的解决方案是创建一个既简单又实用的...
`iframe`跨域消息传递是解决这个问题的关键技术,它允许不同源的`iframe`和主页面之间安全地交换数据。 标题"iframe消息监听传递"主要涉及到两个核心概念:`postMessage`和`message`事件。这两个API是HTML5引入的,...
layuiadmin-iframe3.zip是一个包含layui框架的演示代码压缩包,专用于展示如何在Web应用中集成layui的iframe功能。layui是一款优秀的前端轻量级框架,以其简洁、强大的特性和丰富的UI组件,深受开发者喜爱。这个...
在前端开发过程中,DIV元素被IFRAME遮挡是一个常见的问题,尤其是当页面布局复杂或存在多层嵌套的元素时。以下将详细阐述几种DIV被IFRAME遮挡的情况,并提供相应的解决方法。 首先,要了解的是IFRAME是一种HTML元素...
js控制/获取a.html中iframe加载的b.html中的iframe,很多人都以为getElementById可以直接获取,其实不行的,以上代码就解决了这个问题,js控制iframe加载页面的iframe,不过测试只在IE和火狐通过,谷歌不行,其他自...
在多页面交互的场景下,`iframe`中的子页面与父页面以及与其他兄弟`iframe`之间的通信就显得尤为重要。本文将详细讲解如何实现`iframe`兄弟页面之间的相互调用。 首先,理解`iframe`的结构是关键。一个`iframe`元素...
### iframe高度自适应技术详解 在网页开发过程中,经常会遇到需要在一个页面中嵌入另一个页面的需求,这通常通过HTML的`iframe`元素实现。然而,一个常见的问题是当嵌入的内容高度变化时,如何使`iframe`的高度能够...