Dúvida que vi no fórum.

Pegar o valor da tag title de um iframe, e colocar ele em um titulo do lado de fora, do documento pai.

Não é ‘tão simples’ assim, e notei um probleminha: ‘o iframe precisa ser carregado antes de tentarmos pegar o conteúdo dele’.

Bom, resolvi dessa forma:

<html>
<head>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
  jQuery('#menu a').click(function( e ){

    jQuery('#content').load(function(){
      var titulo = jQuery('#content').contents().find('title').text();
      jQuery('#titulo').text( titulo );
    });
  });
});
</script>
</head>
<body>
  <ul id="menu">
    <li><a href="home.html" target="content">Home</a></li>
    <li><a href="cadastro.html" target="content">Cadastro</a></li>
    <li><a href="contato.html" target="content">Contato</a></li>
  </ul><!-- /menu -->
  <h1 id="titulo">Home</h1>
  <iframe name="content" id="content" src="home.html"  width="99.9%" frameborder="0" scrolling="no" ></iframe>
</body>
</html>

Por esse motivo, depois do clique, eu aguardo o evento ‘onload’ do iframe:

jQuery('#content').load(function(){

Sse vc não quiser incorporar a lib jQuery, e também para provar que jQuery é apenas javascript, segue a mesma funcionalidade, usando apenas js puro:

function id( el )
{
  return document.getElementById( el );
}
window.onload = function()
{
  id('content').onload = function()
  {
    var titulo = this.contentWindow.document.getElementsByTagName('title')[0].innerHTML;
    id('titulo').innerHTML = titulo;
  };
}

é isso =)

Se for útil, comente e compartilhe. Esse é o único ‘pagamento’ que peço pelos códigos(conhecimento) que disponibilizo.