Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
TiagoSR1

Como ocultar uma "div" que não está em um link incorporado à minha página

Recommended Posts

TiagoSR1    0

Olá!

Eu tenho um código bem básico em html que apenas abre (com "iframe") um conteúdo de uma página da Microsoft.
No entanto, ao testar, eu percebi que toda vez que abria a página e o conteúdo do link externo, era exibido uma barra logo abaixo com opções de "compartilhar" e tudo mais (coisa da própria Microsoft). Eu queria impedir que essa barra fosse exibida, ou simplesmente ocultá-la logo após carregar a página. 
Eu entrei no código deste objeto e exclui a "div" e ele sumiu.
Tentei de várias maneiras executar javascripts que pudessem ocultar a div, mas acredito que o problema é que o script está sendo executado antes de carregar a div, pois ela é exibida no final do carregamento da página (que demora uns 5 segundos).

É possível ocultar esta div gerada ao incorporar o link, mesmo não estando no meu código-fonte?

Compartilhar este post


Link para o post
Compartilhar em outros sites
DiF    2.722

@TiagoSR1 Olá,  seja bem vindo em nosso Clube do Hardware.

 

Não sei se entendi bem a dúvida, mas você pode pegar valores ou manipular elementos de uma página dentro de um iframe usando o jQuery ou javascript puro.

 

Por exemplo:

 

<iframe name="iframe-microsoft" id="iframe-microsoft" src="pagina-da-microsoft.html" />

Então, depois  você vê no código-fonte o ID ou class do elemento que quer manipular e aplica no javascript.

Vou deixar em jQuery por ser mais fácil.

 

$(document).ready(function(){
//informa o ID do iframe e que quer pegar um conteúdo, encontra com find()                    
   $('#iframe-microsoft').contents().find('#div-que-quer-esconder').hide();
  
});

Seria algo parecido com isso, não garanto que vai funcionar. Mas pelo menos dei um norte.

Compartilhar este post


Link para o post
Compartilhar em outros sites
TiagoSR1    0
  • Autor do tópico
  • Postado (editado)

    Apenas para detalhar mais a minha dúvida...
    Eu tenho um link de um site e preciso que as pessoas abram este link dentro de uma rede local, mas que este link ficasse oculto, pois é público e tem informações restritas. 
    A solução que encontrei foi incorporá-lo em uma página HTML e dessa forma, cada usuário entraria na página pelo próprio endereço de ip e poderia visualizar as informações do site normalmente. 
    Porém, quando o usuário abre a página, o próprio site exibe uma barra no canto inferior com opções de "Compartilhar" e acaba exibindo o link que gostaria de ocultar. 
    Quando fui em "inspecionar elemento" para analisar esta "barra", vi que era uma "div" e cheguei a deletá-la, e a barra desapareceu. (Até então eu nunca tinha mexido com html)
    A única coisa que preciso é de um script que faça isso que eu fiz manualmente, antes ou imediatamente após a barra aparecer na tela para que o usuário não possa clicar na opção "compartilhar" e poder ter acesso ao link.

    Para executar o código o jQuery apenas preciso colocá-lo entre as instruções de script normalmente? (<script> </script>)

    Exemplo:

    Este é código:

    
    <HTML>
    
    <HEAD>
    <TITLE> Teste </TITLE>
    </HEAD>
    
    <BODY>
    <IFRAME name = "link" id = "link" src="https://app.powerbi.com/view?r=eyJrIjoiYjE4NzlkY2MtNjk1My00ZmVlLThmOGYtZGVmMTE4YjAwNDZkIiwidCI6IjliYTYxY2JiLWUyMWYtNDRhMS1hYTkxLWM1ZTEwMmJhNzA5ZiJ9" width="1368" height="600" scrolling="auto" frameborder="0" align="center"></IFRAME> 
    
    </BODY>
    
    
    </HTML>



    Faça um teste, se puder, com ele. E veja a barra aparecendo logo abaixo e verifique o código da "div" para tentar ocultá-la ou impedí-la de aparecer.



    E obrigado, amigo!
    Sei que estou no meio de grandes especialistas e isto é muito bom!. haha

    Editado por TiagoSR1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    DiF    2.722

    @TiagoSR1

    6 minutos atrás, TiagoSR1 disse:

    Para executar o código o jQuery apenas preciso colocá-lo entre as instruções de script normalmente? (<script> </script>)

    Sim, mas pelas boas práticas o javascript fica melhor se colocar antes de fechar o <body>

    Além disso, não esqueça de importar o jQuery antes do seu código.

     

    Entre no site do jquery e baixe a versão mais recente.

     

    Você pode usar tanto o CDN quanto o arquivo baixado no seu servidor.

     

    Eu uso o CDN:

     

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    TiagoSR1    0
  • Autor do tópico
  • DiF,

    Eu fiz um teste e não deu certo.
    Veja na imagem, o código é conforme editei o post anterior e o "div" a ser ocultado é esse aí em destaque. Excluindo ele, resolvo a minha vida. =D
    Só falta um script para fazer isso sempre, para qualquer usuário que for abrir a página.
     

    Sem título.jpg

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    RafaelCLP    91

    Você não vai conseguir remover isso através de Javascript, por segurança dos browsers.

     

    Qual o problema aqui que causa falhas de segurança?

    1. Imagine que você cria um iframe para o facebook (e se quiser, ainda pode esconder esse iframe e seu usuário nem sequer vai saber que o facebook dele abriu na sua página).

    2. Agora você usa javascript para acessar o chat do usuário (capturar o div do chat).

    3. Com isso, você consegue ler as mensagens dele, e então enviar para um servidor seu.

    Poderia inclusive acessar o campo de publicar mensagem e publicar algo em nome dele, acessar e alterar suas configurações etc!

     

    Enfim, note que se você puder acessar um iframe de um site externo, você pode fazer qualquer coisa! Logo, você não pode. O browser simplesmente não permite. Iframes para páginas no seu próprio servidor? Tranquilo, já que essas páginas são suas, você teria acesso de qualquer forma... páginas externas, jamais! Leia mais sobre same-origin policy. Isso pode ser burlado através de CORS, mas não, você não poderá usar CORS neste caso.

     

    Para usar CORS a própria Microsoft teria que fazer o servidor dela retornar um cabeçalho dizendo que teu site tem acesso à pagina dela, como se estivessem no mesmo domínio. A utilidade do CORS é quando você está desenvolvendo serviços que rodam sob diferentes domínios e que devem se comunicar (por exemplo, dar ao domínio meujogo.com acesso ao domínio api.meujogo.com, ou servidor05.meujogo.com). Você tem que ter controle (acesso autenticado) de todos os sites envolvidos.

     

    O que você pode fazer?

    Talvez você consiga fazer isso com CSS. Você pode colocar algum div em cima do iframe cobrindo apenas a parte que aparece a barra de compartilhar.

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    TiagoSR1    0
  • Autor do tópico
  • Verdade, não tinha pensado dessa forma. Sou muito leigo no assunto.

     

    Mas como meu objetivo é apenas impedir a visualização da barra, se colocar um objeto por cima funciona?

     

    Mas como é um conteúdo incorporado com o "iframe" se eu fizer isso, o conteúdo não será ajustado pra uma área limpa na página?

     

    Neste caso, como posso colocar algo por cima da barra para impedir a visualização dela?

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    RafaelCLP    91
    Postado (editado)

    Um exemplo simples:

    <html>
    <head>
      <title>Teste</title>
      <style type="text/css">
        #hide-share {
          position: absolute;
          background: #EAEAEA;
          width: 30px;
          height: 20px;
          left: 1300px;
          top: 580px;
        }
        #link {
          width: 1368px;
          height: 600px;
        }
      </style>
    </head>
    <body>
    
    <iframe
      name="link"
      id="link"
      src="https://app.powerbi.com/view?r=eyJrIjoiYjE4NzlkY2MtNjk1My00ZmVlLThmOGYtZGVmMTE4YjAwNDZkIiwidCI6IjliYTYxY2JiLWUyMWYtNDRhMS1hYTkxLWM1ZTEwMmJhNzA5ZiJ9"
      scrolling="auto"
      frameborder="0"
      align="center">
    </iframe>
    <div id="hide-share"></div>
    
    </body>
    </html>

    Longe de perfeito, mas funciona. Agora, seu objetivo é esconder o botão de compartilhar para as pessoas não terem acesso ao link, mas a solução é completamente inútil... hoje em dia quase todo mundo sabe inspecionar elemento, e a partir daí basta pegar o link do src do iframe...

     

    Para esconder a barra inteira, use este CSS pro #hide-share, em vez do anterior:

    #hide-share {
      position: relative;
      width: 1368px;
      height: 37px;
      background: white;
      top: -37px;
    }

     

    Editado por RafaelCLP

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    TiagoSR1    0
  • Autor do tópico
  • Estou ciente, mas foi a única solução que encontrei.

    Mas o acesso será apenas com pessoas dentro da rede e dificultando um pouco o acesso ao link já é suficiente.

    O ideal seria ocultar totalmente, com senha e tudo. haha

    Mas muito obrigado pela ajuda, obrigado mesmo! ;D

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×