我先描述一下问题,我有一个页面a.html,页面中有个内嵌的<iframe><iframe id="iframepage" src="index.php?module=Com&action=PicMsgList&picid={$id}&mid={$mid}" width="100%" onLoad="iFrameHeight()" frameborder="0" scrolling="no"></iframe>
iFrameHeight()是控制iframe自适应高度的一个js,我在iframe里设置了滚动条不显示。这样在IE和FF里看不到iframe的滚动条,这是没问题的,但是在google浏览器中却仍然出现iframe的滚动条,导致页面很不美观。然后我查了一些资料发现了问题所在,因为我有一个样式文件test.css,里边有一个样式html{overflow-y:scroll;}.这个样式是控制在页面内容不足一屏时候,仍然显示右侧的滚动条,就是因为这个样式导致google浏览器里iframe 的 scrolling="no" 失效,我删除这个样式就正常了。后来深究原因是因为在google浏览器中如果html{}或者body{}中出现overflow,iframe的scrolling属性就会失效。因为这个样式牵涉到很多页面,所以我只能在我的页面上做文章,我的思路是在页面加载时候,去掉html中的overflow-y,却苦苦找不到方法,希望大家能帮下我。$('html').css('overflow-y',''); 这样替换样式是不行的。因为只要出现overflow这个单词,scrolling就失效,所以,只能移除这个样式。在线等,谢谢!
iFrameHeight()是控制iframe自适应高度的一个js,我在iframe里设置了滚动条不显示。这样在IE和FF里看不到iframe的滚动条,这是没问题的,但是在google浏览器中却仍然出现iframe的滚动条,导致页面很不美观。然后我查了一些资料发现了问题所在,因为我有一个样式文件test.css,里边有一个样式html{overflow-y:scroll;}.这个样式是控制在页面内容不足一屏时候,仍然显示右侧的滚动条,就是因为这个样式导致google浏览器里iframe 的 scrolling="no" 失效,我删除这个样式就正常了。后来深究原因是因为在google浏览器中如果html{}或者body{}中出现overflow,iframe的scrolling属性就会失效。因为这个样式牵涉到很多页面,所以我只能在我的页面上做文章,我的思路是在页面加载时候,去掉html中的overflow-y,却苦苦找不到方法,希望大家能帮下我。$('html').css('overflow-y',''); 这样替换样式是不行的。因为只要出现overflow这个单词,scrolling就失效,所以,只能移除这个样式。在线等,谢谢!
解决方案 »
- Extjs和php交互的一个问题
- 点击按钮后如何弹出一个文本框
- window.open窗口,OpenWindow.document.write如何调用js文件的语句?
- 一个4列3行的框架布局????
- 关于iframe高度问题,帮忙解决
- 我的javascript代码怎么不起作用啊?请高人指点。
- 网页装载时怎么检查select,text的值不能为空?(用javascript自动检查)
- var xmlDoc = new ActiveXObject("Msxml2.DOMDocument")
- 用dreamweaver自动生成的弹出式菜单的问题
- 请问parseInt(str,16)这一句怎么解释?
- JS中SOAP的调用
- 怎么设置让鼠标移出到标签后,信息框自动消失?
会覆盖掉html{}中的overflow
这个试过,不管用的。我的意思就是要去掉over
或:
$("#iframe").removeClass("XXX");
$("#iframe").addClass("XXX");
你没看清楚我的问题,影响我程序的那句css代码是html{overflow-y:scroll;},我现在想要加载页面时候移除html里的overflow。
overflow: auto;
}
document.getElementsByTagName("html")[0].className="abb";
加个样式覆盖掉 js写的
1, 这个说法是错的
2, 试试
$('html').css('overflow-y','hidden');
$('body').css('overflow-y','hidden');
不能覆盖的,只要出现“overflow”这个单词就不行。我问题里已经说过
不是我iFrameHeight的问题,如果我把样式里的overflow-y:scroll去掉,滚动条就正常了,加上overflow-y:scroll后scrolling="no"这个属性失效了,而不是高度问题。
<link src="那个全局的css文件">
<style>
.theforever_csdn {overflow-y:visible;}
</style>
<iframe style="theforever_csdn">我没时间测试,楼主试下不行再说。
刚试过不行的,还是因为在google浏览器里,只要body{}或者html{}里出现overflow,页面中iframe的scrolling="no"就会失效。
<iframe id="iframepage" src="index.php?module=Com&action=PicMsgList&picid={$id}&mid={$mid}" width="100%" onLoad="iFrameHeight();this.contentWindow.document.body.html.style.overflow='hidden'" frameborder="0" scrolling="no"></iframe>this.contentWindow.document.body.html.style.overflow='hidden'
这里面的.html是错的,不能加这个,被这css html{}给误导了,出现了这么低级错误,,不好意思。下面的两个页面,我在chrome里试过了。可以用。b.html<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<iframe src="a.html" width="100%" height='100px' onLoad="this.contentWindow.document.body.style.overflow='hidden'" frameborder="0" scrolling="no"></iframe>
</body>
</html>
a.html<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type='text/css'>
html{overflow:scroll;}
</style>
</head>
<body>
aaa<br>aaa<br>aaa<br>aaa<br>aaa<br>aaa<br>aaa<br>aaa<br>aaa<br>aaa<br>aaa<br>aaa<br>aaa<br>aaa<br>aaa<br>
</body>
</html>
Javascript是可以对每个元素每个属性进行操作的,楼主不妨使用javascript在页面load之后,彻底去除overflow属性,效果上是肯定可以的。