JavaScript SaveAs

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!
 
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
 
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?
 
** 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:
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...
 
=========
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
 
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.
 
romanu disse:
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.

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:
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:
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:
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:
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
 
Back
Topo