Usuário com melhor resposta
Substituir iframe por algo não obsoleto - melhor solução?

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-javascriptSeguindo 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.aspxIframe 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
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
- Marcado como Resposta Filipe B CastroModerator quinta-feira, 29 de junho de 2017 20:42
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
- Marcado como Resposta Filipe B CastroModerator quinta-feira, 29 de junho de 2017 20:42
-
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.