1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

JavaScript SaveAs

Discussão em 'Programação' iniciada por romanu, 27 de Novembro de 2005. (Respostas: 17; Visualizações: 1693)

  1. romanu

    romanu Power Member

    Boas! ... Sejam elas.


    o execcommand so é compativel com IE?


    Existe alguma outra maneira de fazer algo do genero do execcommand(SaveAs) que seja compativel com Firefox?

    Isto tudo pk? Pk quero de sacar (com um script) uma linha de codigo que contem o src da imagem de uma pagina Web. Ja tentei aceder so com leitura (document.images) mas faz deny, cache do FF nem pensar, saveAs por Javascript tb n da pa FF pelos vistos.

    Alguma ajudinha era bem vinda :D

    Fiquem bem!
     
  2. Delta

    Delta Suspenso

    não consegui perceber o que queres, explica lá isso melhor
     
  3. romanu

    romanu Power Member

    Por exemplo, quero sacar uma linha de codigo do ficheiro http://www.sei-la.com/myframes.php usando javascript.

    É uma pagina dinamica, e tou a fazer um script que faz play dum SOM qd uma imagem especifica aparece na pagina!!!!
     
  4. Delta

    Delta Suspenso

    Isso não é possível por causa dos sistemas de segurança implementados

    O que tu podes fazer é criar scripts numa página PARENT e invocá-los numa página CHILD

    ou seja, crias numa página PARENT varíaveis globais das várias sources que depois podes invocar noutras páginas.

    Agora ler e escrever do disco isso é extremamente restrito por questões de segurança
     
  5. romanu

    romanu Power Member

    O que tu keres dizer é criar uma Frameset certo?
    Sendo as frames as paginas que eu quero.
    O problema é que ja tentei isso.
    Dp acedia como parent.*frame*.document.images. Mas não consgio, não o permite.

    Se não for isso, poderias apresentar um exemplo?
     
  6. Delta

    Delta Suspenso

    ** PÁGINA DE FRAMES **

    <html>
    <head>
    <title>Frame</title>
    </head>
    <FRAMESET rows="67%,*" frameborder="0" framespacing="0">
    <FRAME name="PM" src="1.htm" marginheight="0" marginwidth="0">
    <FRAME name="PD" src="2.htm" marginheight="0" marginwidth="0">
    </FRAMESET>
    </html>


    ** FRAME MASTER (PM) 1.HTM **

    <html>
    <head>
    <title>Frame</title>

    <SCRIPT language="JavaScript">

    function mudaTexto(txt) {
    document.getElementById('texto').innerHTML=txt;
    }


    function lerTexto() {
    return document.getElementById('texto').innerHTML;
    }

    </SCRIPT>

    </head>
    <body>
    <span id="texto">teste de frames</span>
    </body>
    </html>

    ** FRAME DETAIL (PD) 2.HTM **

    <html>
    <head>
    <title>Frame</title>
    </head>


    <body>
    <a href="#" onclick="top.frames['PM'].mudaTexto('novo texto dinâmico');">clicar aqui</a>
    <br>
    <a href="#" onclick="alert(top.frames['PM'].lerTexto());">ler texto</a>

    </body>
    </html>
     
    Última edição: 28 de Novembro de 2005
  7. romanu

    romanu Power Member

    Acho que não fiz entender bem o que eu pretendo.

    Isto é o que eu tenho actualmente:

    Código:
    <html><head><title>Pardus</title>
    <script type="text/javascript">
    function CheckForMessage(){
      var j,x;
      x = window.msgframe.document.images;
      for (j=0; j < x.length; ++j) {
        if(x[j].src.indexOf("icon_msg.png") != -1)
          window.open("file://C:/pardus/dog.wav");
      }
    }
    </script>
    </head>
    
    <frameset onload="CheckForMessage()" rows="80,20,*" border="8">
    <frame src="http://www.pardus.at/menu.php" name="menu" marginheight="0" marginwidth="0" frameborder="0" noresize="noresize">
    <frame src="http://www.pardus.at/msgframe.php" name="msgframe" marginheight="0" marginwidth="0" frameborder="0" noresize="noresize">
    <frame src="http://www.pardus.at/main.php" name="main" marginheight="0" marginwidth="0" frameborder="0" noresize="noresize">
    </frameset>
    <noframes>Your browser has to support frames!</noframes>
    
    </html
    

    O codigo do msgframe é este:

    Código:
    <html>
    <head>
    <style type="text/css">
    <!--
    body		{ background : #00001C; margin : 0 10 0 0; font-size: 11px; }
    A:link		{ text-decoration:none; color:#D0D1D9; }
    A:visited 	{ text-decoration:none; color:#D0D1D9; }
    A:hover 	{ text-decoration:underline; color:#E5E5FF; }
    	 }
    -->
    </style>
    </head>
    
    <body>
    
    <table width="100%" cellpadding="0" cellspacing="0"><tr><td align="left" width="33%"><font color="#CCCCCC" face="Arial, Verdana, sans-serif" style="font-size:11px">
    &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.pardus.at/index.php?section=manual001" target="_blank">Manual</a> | <a href="http://www.pardus.at/index.php?section=faq_ingame" target="_blank">FAQ</a> | <a href="http://www.pardus.at/index.php?section=rules" target="_blank">Rules</a>
    
    </td>
    <td align="center" width="33%"><font color="#CCCCCC" face="Arial, Verdana, sans-serif" style="font-size:11px">
    <a href='statistics.php?display=onlinelist' target='main'>Currently there are 162
     players online.</a></font></td><td align="right" width="33%"><font color="#CCCCCC" face="Arial, Verdana, sans-serif" style="font-size:11px"><strong>
    
    <a href="messages.php?sort=received" target="main"><img src="file://C:/pardus/icon_msg.png" border="0" title="New messages"> : 1</a>
    </strong></font></td></tr></table>
    </body>
    
    
    O que eu quero apanhar é se nesta ultima frame existe isto:
    <img src="file://C:/pardus/icon_msg.png" border="0" title="New messages">

    Eu não tenho permissões de escrita em nenhuma das frames.
    Isto funciona se o msgframe tiver no meu disco...
     
  8. Delta

    Delta Suspenso

    =========
    O que eu quero apanhar é se nesta ultima frame existe isto:
    <img src="file://C:/pardus/icon_msg.png" border="0" title="New messages">

    Eu não tenho permissões de escrita em nenhuma das frames.
    Isto funciona se o msgframe tiver no meu disco...
    ==========

    sabendo que :

    podes invocar um script dentro do MSGFRAME para verificar a existência ou não dessa tag IMG e que inclusive podes obter a SRC dessa IMG

    as frames MENU ou MAIN podem executar scripts da tua frame MSGFRAME

    qual é o teu problema ? 8o 8o
     
  9. romanu

    romanu Power Member

    function CheckForMessage(){
    var j,x;
    x = window.msgframe.document.images;
    for (j=0; j < x.length; ++j) {
    if(x[j].src.indexOf("icon_msg.png") != -1)
    window.open("file://C:/pardus/dog.wav");
    }
    }


    Esta script já o faz :o :confused:

    Qual é a diferença entre executar um script pa aceder à msgframe onde eu o tou a executar e executar dentro das outras frames.
     
  10. Delta

    Delta Suspenso

    Acontece que a MSGFRAME consegue ter o CONTROLE TOTAL sobre essa TAG de mensagem, ou IMG, ou lá como tu lhe chamas e as outras frames não.

    Trata-se de um objecto da MSGFRAME, por conseguinte tem que ser tratado dentro deste frame

    tu consegues fazer isso tudo invocando os scripts e/ou variaveis dentro dos outros frames tal como exemplifiquei. Ou seja, pá, invoca nas outras frames essa função CheckForMessage, até lhe podes passar parâmetros.

    Agora escrever e/ou ler do disco é má política além de que são tarefas muito limitadas, ou até impossíveis, por causa da segurança. Imagina o que seria se os scripts tivessem essa possibilidade...
     
    Última edição: 29 de Novembro de 2005
  11. Delta

    Delta Suspenso

    olha só um código simples para varificar a existência de uma TAG


    <html>
    <head>
    <title>Frame</title>

    <SCRIPT language="JavaScript">

    function existeSPAN() {
    document.getElementById('texto')?alert('Existe tag span id texto'):alert('Não existe tag span id texto');
    }

    </SCRIPT>

    </head>
    <body onload="existeSPAN()">
    <span id="texto">teste de frames</span>
    </body>
    </html>



    incluis todos estes scripts de controlo/verificação na frame MSGFRAME e invocas nas outras frames. Fiz-me entender ?! é simples !!!!
     
    Última edição: 29 de Novembro de 2005
  12. romanu

    romanu Power Member

    O problema é k eu não posso por o script dentro da msgframe, a frame não é minha!

    alguma soluçao?
     
  13. Delta

    Delta Suspenso

    LOL :lol: :lol:

    podias ter dito logo que não era tua e que não tinhas controle sobre ela

    mesmo assim deve haver uma solução para ler a estrutura de objectos de uma frame que não nos pertence, deixa-me ver...logo te digo

    foste muito pouco claro, agora como te disse e se tiver tempo deixa ver se arranjo um script espião :D
     
    Última edição: 29 de Novembro de 2005
  14. romanu

    romanu Power Member

    lol ... tava-te a dizer desde o inicio do post k n tinha permissoes de escrita na frame :D . É na boa :P
     
  15. Delta

    Delta Suspenso

    este script retorna TRUE se existir icon_msg.png na frame msgframe, caso contrário retorna false


    <script type="text/javascript">
    function lerFrame() {
    var contents=top.frames['msgframe'].document.body.innerHTML;
    return contents.search(/icon_msg.png/i)!=-1;
    }
    </script>

    consegues assim ?
     
    Última edição: 30 de Novembro de 2005
  16. romanu

    romanu Power Member

    HUMM, não funciona. O javascript console dá-me o mesmo erro:

    Error: uncaught exception: Permission denied to get property HTMLDocument.body

    Isto tá dificil :P
     
  17. Delta

    Delta Suspenso

  18. romanu

    romanu Power Member

    ohhhhhhhh tou lixado! :(

    Obrigado pelas dicas!
     

Partilhar esta Página