none
Substituir iframe por algo não obsoleto - melhor solução? RRS feed

  • Pergunta

  • Prezados,

    tenho um iframe que pega a url de outras páginas do meu projeto, via variável de sessão do meu backend:

     <iframe id="test" src="<% =sUrl %>" style="height:677px; width: 1240px"; marginheight="0"; marginwidth="0" scrolling="auto"></iframe>

    Exemplo, meu projeto em algum momento de acordo com o que o usuário clica, via backend faz algumas verificações e então salva a url:

    /NomeProj/paginas/frmDados.aspx

    na minha variável de sessão sUrl, e então abro essa pagina no meu iframe.

    Mas preciso modernizar isso pra um trabalho de faculdade e o professor já falou pra eu substituir o iframe.

    Se eu entendi bem era para esse js fazer isso automaticamente:

    https://gist.github.com/aklump/5470863

    Mas não funcionou. Por esse javascript acima é possível?

    Fiz diversas pesquisas e tentei diversas formas explicadas na net e nenhuma funcionou adequadamente, alguns links que li e testei:

    https://stackoverflow.com/questions/28270008/load-the-page-inside-of-iframe-using-ajax

    https://stackoverflow.com/questions/10371801/how-can-i-use-ajax-as-an-alternative-to-an-iframe

    https://stackoverflow.com/questions/17271190/replace-iframe-with-ajax

    https://stackoverflow.com/questions/10040297/how-exactly-can-i-replace-an-iframe-with-a-div-and-javascript

    https://stackoverflow.com/questions/28377144/is-there-anyway-to-replace-iframe-with-simple-ajax-code

    https://stackoverflow.com/questions/9434569/replace-div-with-iframe-in-javascript

    Seguindo este último tutorial eu até consegui jogar a página frmDados.aspx no div test:

    http://www.hashbangcode.com/blog/using-jquery-load-content-page-without-iframe

    <!DOCTYPE HTML>
    <html> 
        <head> 
            <title>Loader</title> 
            <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script> 
            <script type="text/javascript">
                $(document).ready(function(){
                    $('#test').load('frmDados.aspx', '', function(response, status, xhr) {
                        if (status == 'error') {
                            var msg = "Sorry but there was an error: ";
                            $(".content").html(msg + xhr.status + " " + xhr.statusText);
                        }
                    });
                });
            </script> 
        </head>
        <body> 
            <div id="test"></div>
        </body>
    </html>

    Porém tem uma caixa de texto deste frmdados.aspx que chamo no div, e essa caixa de texto é um autocompletar (via angularjs)  deveria funcionar e não é inicializado, igual é no iframe normalmente.

    Mesmo sem o autocompletar, para testar digito um dado e mando pesquisar, me aparece:

    Não é possível encontrar o recurso.

    Descrição: HTTP 404. O recurso que você está procurando (ou uma de suas dependências) não pôde ser removido, seu nome foi alterado ou está temporariamente indisponível. Examine o URL e certifique-se de que está digitado corretamente. 

    URL solicitada: 
    /NomeProj/setor/frmDados.aspx

    Iframe está obsoleto porque não é indexado pelo google, o que está dentro do iframe não fica à mostra, e teoricamente seria mais lento, talvez por isso meu professor mandou substituir.

    Alguma outra solução que converta um iframe num div (ou alguma outra coisa que eu não saiba, não precisa ser div, só não pode ser iframe) mas que funcione como um iframe, ou seja, eu possa chamar uma página do meu projeto normalmente e manter todas as funcionalidades?

    Desde já obrigado


    • Editado Angelo.Net domingo, 25 de junho de 2017 05:20
    domingo, 25 de junho de 2017 05:11

Respostas

  • Angelo,

    Se HTML5 é uma opção, dê uma olhada na tag embed.

    https://www.w3schools.com/tags/tag_embed.asp

    Exemplo:

    <embed id="embedGNU" type="text/html" src="frmDados.aspx" width="100%" />


    Carlos Eduardo Ferreira

    segunda-feira, 26 de junho de 2017 11:49

Todas as Respostas

  • Angelo,

    Se HTML5 é uma opção, dê uma olhada na tag embed.

    https://www.w3schools.com/tags/tag_embed.asp

    Exemplo:

    <embed id="embedGNU" type="text/html" src="frmDados.aspx" width="100%" />


    Carlos Eduardo Ferreira

    segunda-feira, 26 de junho de 2017 11:49
  • Boa tarde,

    Por falta de retorno esta thread esta encerrada.

    Por gentileza, caso necessário abra uma nova thread.

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 29 de junho de 2017 20:42
    Moderador