Como controlar a rolagem do iframe incorporado na página? O método é usar o método scroll da janela iframe:
1. Obtenha o objeto janela do iframe
var iwin = document.getElementById('iframe1').contentWindow;
2. Obtenha o objeto de documento de janela do iframe
var doc = iwin.document;
3. Chame o método scroll do objeto de janela iframe
iwin.scroll(0,doc.body.scrollHeight);
Os dois parâmetros de rolagem são a quantidade de rolagem dos eixos xey
doc.body.scrollHeight é a altura da página iframe (incluindo a parte não exibida)
Um exemplo de aplicação abrangente é o seguinte:
Copie o código do código da seguinte forma:
<html>
<cabeça>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>teste de foco</title>
<style type="texto/css">
ul{
cor de fundo:#ff00ff;
exibição: bloco;
}
.toc li{
posição:largura relativa:10em;
cor de fundo:#00ff00;
exibição: bloco;
}
eu sou {
/*display:block;*/ /*Se exibido no modo de bloco, ele ocupará todo o espaço do elemento pai*/
cor de fundo:#0000ff;
} /*É necessário criar um elemento em nível de bloco*/
ai ai{
exibição: nenhum;
}
li a:passar o mouse{
alinhamento de texto: esquerda;
}/*O código adicionado aqui é apenas para exibição no IE6. Ele não possui funções especiais. Ele pode ser escrito, exceto para decoração de texto, cor e índice z.*/.
.toc li a: passe o mouse sobre{
exibição: bloco;
largura:6em;
posição:absoluta;
topo:0;
left:100% /* Aqui 100% refere-se à largura relativa ao elemento li*/
margem:-1em 0 0 0em;
preenchimento: 1em;
plano de fundo:#cde;
borda: 1px vermelho sólido;
alinhamento de texto: esquerda;
índice z:10000;
}
</estilo>
</head>
<corpo>
<iframe id="iframe1" src=""></iframe>
código HTML
<ul id="toc">
<li><a href="1.html">Capítulo 1<i>No qual um dragão é visto</i></a></li>
<li><a href="2.html">Capítulo 1<i>No qual um cavaleiro é convocado</i></a></li>
<li><a href="3.html">Capítulo 1<i>No qual uma falha é decepcionada</i></a></li>
<li><a href="4.html">Capítulo 1<i>No qual um dragão é visto</i></a></li>
<li><a href="5.html">Capítulo 1<i>No qual um dragão é visto</i></a></li>
<li><a href="6.html">Capítulo 1<i>No qual um dragão é visto</i></a></li>
<li><a href="7.html">Capítulo 1<i>No qual um dragão é visto</i></a></li>
</ul>
<linguagem script="javascript">
função getElementAbsPos(e) {
var t = e.offsetTop;
var l = e.offsetLeft;
enquanto(e = e.offsetParent) {
t += e.offsetTop;
eu += e.offsetLeft;
}
return {esquerda:l,topo:t};
}
função getPosição(obj){
var esquerda = 0;
var topo = 0;
while(obj != documento.corpo){
esquerda = obj.offsetLeft;
topo = obj.offsetTop;
obj = obj.offsetParent;
}
volte para a esquerda;
}
var lis = document.getElementsByTagName('li');
var iwin = document.getElementById('iframe1').contentWindow;
var doc = iwin.document;
for(var i=0;i<lis.length;i++){
lis[i].onmouseover = function(){
var obji = this.childNodes[0].childNodes[1];
doc.writeln('<br>'+ obji.innerText + ',' + getElementAbsPos(document.getElementById('toc')).left);
doc.writeln('<br>'+ obji.offsetLeft + ',' + getElementAbsPos(obji).left + ',' + obji.offsetWidth+ ',' + obji.style.left);
doc.writeln('<br><b>'+ doc.body.scrollHeight + '</b>')
iwin.scroll(0,doc.body.scrollHeight);
//iwin.scrollTo(10000); //Inválido
}
}
</script>
</body>
</html>