Jump to content

Iframe? Outra coisa? :s


joanalemos
 Share

Recommended Posts

Ola pessoal..

Queria saber quem me pode ajudar.

Tou a fazer um site para um cliente que e um fornecedor da pt, e o que ele queria era para nao ter de tar ele a fazer o backoffice ter tipo uma mascara de base do site e depois ao centro aparecerem os conteudos do site da pt que estao sempre actualizados.

Pensei em utilizar tipo uma iframe, mas ao colocar a iframe teria de esconder menus e isso do site original, coisa que nao consegui, alguem me pode dar uma dica sff ?

Com iframe ou outra coisa qualquer, desde que fique a funcionar.

Obrigado 😉

Link to comment
Share on other sites

O site deve estar formatado de origem para aparecer nesse iframe. Estar a desenvolver meios em torno de um site que não foi feito para ser colocado num iframe é muito contra-produtivo.

Se esse serviço é disponibilizado pela PT aos fornecedores, o mais provável é que exista um API para aceder aos conteúdos actualizados e todo o desenvolvimento seria feito em torno dessa ferramenta.

Para além disso, se o objectivo é que a interacção do utilizador nesse iframe se traduza em operações realizadas do lado do fornecedor (e não da PT), isso teria sempre que ser feito por outros meios que não o iframe, pois o iframe implica operações realizadas apenas no site da PT.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Link to comment
Share on other sites

O problema não e colocar que isso e fácil, e sim ocultar as coisas.

Tipo eu tenho o site do cliente com um menu próprio e isso e depois quero colocar por exemplo http://www.ptnegocios.pt/portal/site/negocios/menuitem.dd2d739fdf6e254de0cde007751056a0/?vgnextoid=b74780f6720cef00VgnVCM1000005a01650aRCRD esta pagina dentro do site, mas não quero mostrar o menu da pt e o resto, só quero mostrar os destaques que e os telefones que sao os destaques xD.

ja utilizei o display none e nao consegui :s

Link to comment
Share on other sites

O site deve estar formatado de origem para aparecer nesse iframe. Estar a desenvolver meios em torno de um site que não foi feito para ser colocado num iframe é muito contra-produtivo.

Se esse serviço é disponibilizado pela PT aos fornecedores, o mais provável é que exista um API para aceder aos conteúdos actualizados e todo o desenvolvimento seria feito em torno dessa ferramenta.

Para além disso, se o objectivo é que a interacção do utilizador nesse iframe se traduza em operações realizadas do lado do fornecedor (e não da PT), isso teria sempre que ser feito por outros meios que não o iframe, pois o iframe implica operações realizadas apenas no site da PT.

KTachyon Obrigado pela ajuda,

tipo o utilizador não vai ter nenhuma tarefa e só ver destaques tablets e essas cenas.

Como é que consigo saber se a pt tem alguma API que me forneça o serviço em que só tenha de a chamar?

Falei do iframe pois sei que apareceria logo o site, so queria conseguir esconder menus e isso da pt, e directo com o display none nao consegui -.-

Thanks 😉

Link to comment
Share on other sites

Se o objectivo é apenas apresentar os destaques, é possível que consigas esse efeito se utilizares Javascript para alterar as propriedades dos objectos dentro do iframe. Via CSS não consegues. Mas repara que conseguires formatar uma página com Javascript pode dar mais trabalho que fazer por outros meios.

Pela página apresentada, não me parece que a PT forneça um API para essa funcionalidade. Uma alternativa seria ir fazendo scrapping à página da PT de tempos a tempos. Não é uma alternativa muito fiável, de qualquer das formas.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Link to comment
Share on other sites

http://stackoverflow.com/questions/251420/invoking-javascript-in-iframe-from-parent-page

Penso que a partir deste exemplo deverás conseguir aceder aos objectos dentro do iframe. Em vez de chamares a função, depois de obteres o conteúdo do iframe que podes colocar numa var:

var iframe_content = document.getElementById('targetFrame').contentWindow;

deves conseguir aceder aos objectos no interior da mesma recorrendo à função getElementById(). Em qualquer dos casos, eu recomendaria utilizares jQuery para acederes e modificares as propriedades dos objectos no iframe:

$('#frame_id').contents().find('#div_id').css("display","none");
// ou
$('#frame_id').contents().find('#div_id').hide();

Mas precisas de importar o jQuery para o site: http://jquery.com/

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Link to comment
Share on other sites

Se percebi o que querias dizer era algo como

<iframe src="http://www.ptnegocios.pt/portal/site/negocios" id="target_frame"></iframe>

e depois em js

<script type="text/javascript">

var conteudoiframe = document.getElementById('target_frame').contentWindow;

$('#target_frame').contents().find('.pos_header').hide();
</script>

Não funcionou :s

A importação do jquery para o site ja esta feito que eu programei uma janela a aparecer sobre fundo preto.

Thanks pela ajuda 😉

Link to comment
Share on other sites

Verifica as exceções. Se não tiveres permissões explícitas para poderes acederes ao DOM do Iframe isso lança exceção e não consegues continuar.

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

var conteudoiframe = document.getElementById('target_frame').contentWindow;

$('#target_frame').contents().find('.pos_header').hide();

Como não estás a utilizar a variável conteudodoiframe, não precisas dela para nada, no fundo é o mesmo que o $('#target_frame').contents().

Mas, no fundo está correcto, é possível conseguires esconder partes do iframe com essa abordagem. Podes experimentar correr essa linha directamente da console de javascript e ver o que acontece. Browsers derivados de webkit (Chrome, Safari) apresentam mesmo os objectos que foram alterados.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Link to comment
Share on other sites

Pah, é como te digo. Saca o Chrome ou o Safari, abre a página com o iframe, clica com o botão direito em qualquer zona da página fora do iframe e escolhe a opção "Inspect Element". Vai aparecer uma janela com a estrutura da página e, em baixo, vais ter um botão que te permite aceder à consola de javascript. A partir daí podes escrever comandos e ver o resultado. Se houver um erro, o interface avisa-te.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.