Como chegar javascript em um quadro que esperar até a página foi carregada em um segundo quadro

StackOverflow https://stackoverflow.com/questions/1232002

Pergunta

Eu tenho dois quadros em um conjunto de quadros - frame[0] contém um script que carrega uma página em frame[1] usando

top.frames[1].location.href = 'http://some_location.com/page.html';

e, em seguida, executa ações nessa página, por exemplo, pesquisar texto na página. Eu preciso o script que esperar até page.html foi carregado no segundo quadro antes de fazer isso, e eu não posso usar onload=... na segunda página, porque eu não tenho nenhum controle sobre sua fonte.

Existe uma maneira de fazer isso?

Foi útil?

Solução

uso caso de elemento QUADRO onLoad

edit:

<frame onload = "if( top.frames[1].location.pathname == '/page.html' " ) alert( 'loaded' )";

ou se você carregar páginas diferentes para o mesmo uso quadro seguinte:

<frame onload = "if( top.frames[1].location.pathname != 'about:blank' " ) alert( 'loaded' )";

ou

<frame src = '/dummyInitial.html' onload = "if( top.frames[1].location.pathname != '/dummyInitial.html' " ) alert( 'loaded' )";

Outras dicas

Bem, eu fazer isso, e ele funciona.

var idInterval;
function callPage()
{   top.main.document.location.href = somepage.aspx;
    document.getElementById('divLoading').style.visibility ="visible";
    idInterval = setInterval("validaFrameMain()",50);
}
//look if the frame page is complete load
function validaFrameMain()
{
  if (top.main.document.readyState != "complete")
  {document.getElementById('divLoading').style.visibility ="visible";}
  else
  { document.getElementById('divLoading').style.visibility ="hidden";;
    clearInterval(idInterval);
    idInterval = nothing;
  }
}

Se você não tem controle sobre a fonte da página carregada e mais importante, se for proveniente de outro domínio, então só há uma resposta:

Você não pode.

comunicação Interframe entre diferentes domínios não é possível. E você precisa InterFrame comunicação, porque você precisaria de algo como função pronto jQuery na página carregada para determinar se toda a página (DOM) é carregado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top