之前有个需求是要判断iframe内的网页是否滚动到底部触发事件,
网上找了许多资料都是说在当前页面下的,
索性就自己研究了一下,
找到了解决方法.
clientHeight:这个元素的高度,占用整个空间的高度
offsetHeight:是指元素内容的高度
scrollTop:可以理解为滚动条可以滚动的长度
以下是源代码
代码如下:
<iframe
src="~/Files/3.html"
id="iframepage"
width="825"
onload="func()"></iframe>
<script
type="text/javascript">
function
func()
{
var
ifm
=
document.getElementById("iframepage")
ifm.height
=
window.document.body.clientHeight
-
100
}
<!--在chrome有兼容问题,FF和IE10无问题,网上说chrome访问iframe要在服务器环境下,不知道什么情况-->
window.document.getElementById("iframepage").contentWindow.onscroll
=
function
aaa()
{
var
ifm
=
document.getElementById("iframepage").contentWindow.document.documentElement
if
(ifm.scrollTop
==
ifm.scrollHeight
-
ifm.clientHeight)
{
alert("到底了")
}
}
</script>
你是在哪个位置获取iframe中内容的高度的呢?如果是在父页面的话你的语句没有问题,但必须要在iframe中内容加载完成后再获取,你可以用一个按钮来ALERT一下,或者在onload事件里ALERT一下来显示看看获取有没有问题<IFRAME onload="alert(this.contentWindow.document.body.scrollHeight)“ src="">></IFRAME>
<script>function judge()
{
var src = "http://zhidao.baidu.com/"
var url = document.getElementById("iframeid").src
if (url===src) return
else document.getElementById("iframeid").src = src
}
</script>