[Cascavel-pm] Dúvida "Interpretador JAVASCRIPT"

roan Brasil roanbrasil em gmail.com
Quinta Janeiro 25 11:30:50 PST 2007


Estava testando o modulo do CPAN Javascript e tal e quando precisei executar
o arquivo deu esse erro
ReferenceError: document is not defined at line 9: (null)
Esse erro é que preciso de alguma forma, acredito eu, executar alguma
simulação de navegador junto cmo o module JavaScript. Me deem um help se
puderem ou quem souber... qq coisa me add roanbrasil em gmail.com para trocar
ideia sobre isso.


ABAIXO CODE PERL: PS -> esse código é só um teste para entender como ele
funciona com o javascript que quero.
Alguem me da um help?
desculpem mesmo


#!/usr/bin/perl
use strict;

use JavaScript;
use LWP::Simple;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new;

$ua->agent('Mozilla/5.0');

#my $string = get('
http://www.rumo.com.br/sistema/categorias.asp?IDLoja=1124');

#my $string = $ua->get('http://www.rumo.com.br/sistema/LojaSite.js');

#my $string2 = "try{if(document.domain.indexOf('fastcommerce.com.br')>=0){
document.domain='fastcommerce.com.br';}if(document.domain.indexOf('
rumo.com.br')>=0){document.domain='rumo.com.br';}}catch(e){}";


#my $string3 =$ua->get('
http://www.rumo.com.br/lojas/00001124/htm/JurosParcelas.js');

my $string5 = <<'JSCRIPT';

//Informe abaixo os juros para parcelamento em 1x, 2x, 3x, etc.
var Juros=new Array(0,2.98,2.98,2.98,2.98,2.98,2.98,2.98,2.98,2.98);

function MostraMaxParcela(PrecoProd,MaxParcelas){
  var ComSem;
  if(PrecoProd==0||MaxParcelas==1||Juros.length==0)return;
  if(MaxParcelas==0||MaxParcelas>Juros.length)MaxParcelas=Juros.length;
  if(Juros[MaxParcelas-1]>0)ComSem=""; else ComSem="<font
color=#DD0000>&nbsp;sem&nbsp;juros</font>";
  document.write("ou&nbsp;<b>"+MaxParcelas+"x</b>"+ComSem+"
de&nbsp;<b>"+FormatPrecoReais(CalculaParcelaJurosCompostos(PrecoProd,MaxParcelas))+"</b>");
}


function MostraParcelas(PrecoProd,MaxParcelas){
  var ComSem,EstiloLinha;
  if(PrecoProd==0||MaxParcelas==1||Juros.length==0)return;
  if(MaxParcelas==0||MaxParcelas>Juros.length)MaxParcelas=Juros.length;
  document.write("<br><table cellpadding=3 width=350><tr bgcolor=#DCDCDC><td
colspan=4 height=22 class=TitTabParc align=center><b>Opções de
parcelamento</td></tr><tr bgcolor=#FFFFFF><td class=TitTabParc>Número de
parcelas</td><td align=right
class=TitTabParc>Valor&nbsp;de<br>cada&nbsp;parcela</td><td align=right
class=TitTabParc>Valor total parcelado</td><td align=right
class=TitTabParc>Juros<br>% a.m.</td></tr>");
  for(var i=0;i<MaxParcelas;i++){
    if(Juros[i]>0)ComSem="com juros"; else ComSem="<font
color=#DD0000>sem&nbsp;juros</font>";
    if((i%2)==0)EstiloLinha='EstParcPar'; else EstiloLinha='EstParcImpar';
    document.write("<tr class="+EstiloLinha+"><td
class="+EstiloLinha+">"+(i+1)+"x "+ComSem+"</td><td class="+EstiloLinha+"
align=right>"+FormatPrecoReais(CalculaParcelaJurosCompostos(PrecoProd,i+1))+"</td><td
class="+EstiloLinha+"
align=right>"+FormatPrecoReais(CalculaParcelaJurosCompostos(PrecoProd,i+1)*(i+1))+"</td><td
align=right class="+EstiloLinha+" >"+FormatJuros(Juros[i])+"</td></tr>");
 }
  document.write("</table><br>");
}

function FormatJuros(num){
  num=num.toString().replace(/\$|\,/g,'');
  if(isNaN(num))num="0";
  sign=(num==(num=Math.abs(num)));
  num=Math.floor(num*100+0.50000000001);
  cents=num%100;
  num=Math.floor(num/100).toString();
  if(cents<10)cents="0"+cents;
  for(var i=0;i<Math.floor((num.length-(1+i))/3);i++)num=num.substring(0,
num.length-(4*i+3))+'.'+num.substring(num.length-(4*i+3));
  if(num==0&&cents==0)return '0%'; else return
((sign)?'':'-')+'&nbsp;'+num+','+cents+'%';
};

JSCRIPT

my $string6 = 'MostraMaxParcela(1429.99,0);';
#print $string5; exit 0;
my $rt = JavaScript::Runtime->new();
my $cx = $rt->create_context();



  $cx->bind_function(name => 'write', func => sub { print @_;});
  $cx->eval("$string5 $string6 ");



=for
  $cx->eval(q/
    for (i = 99; i > 0; i--) {
        write(i + " bottle(s) of beer on the wall, " + i + " bottle(s) of
beer\n");
        write("Take 1 down, pass it around, ");
        if (i > 1) {
            write((i - 1) + " bottle(s) of beer on the wall.");
        }
        else {
            write("No more bottles of beer on the wall!");
        }
    }
  /);
=cut

__END__
my $string4 = 'function MostraChat() {
 popup=window.open("
http://www.rumo.com.br/sistema/ChatLogin.asp?IDLoja=1124&Y=377647088236
","Chat275","top=20,left=20,height=280,width=390,scrollbars=no,resizable=yes");
 popup.focus();
 return void(0);
}';




Em 24/01/07, roan Brasil <roanbrasil em gmail.com> escreveu:
>
> Valeu Luiz vou testar e lhe dou um feed back... abraços
>
> Em 24/01/07, Luis Motta Campos <luismottacampos em yahoo.co.uk > escreveu:
> >
> > On Jan 24, 2007, at 1:03 PM, roan Brasil wrote:
> > >
> > > Olá galera,
> > >
> > > Eu trabalho com Spider e gostaria de uma dica pode ser?
> > > Bom ao fazer Spider existem algumas coisas que não consigo coletar
> > > pois é em javascript. É uma função que passa o parametro do preco
> > > de um produto e retorna a quantidade máxima de parcelas com juros e
> > > sem juros. Como posso "simular" quando eu chamo a home page o
> > > javascript ou "roda-lo"? Alguém pode me ajudar?
> > > Resumindo é isso... quem puder me ajudar e ainda tiver dúvida me
> > > pergunte pois preciso resolver esse problema e estava conversando
> > > com Joenio e ele sugeriu mandar para a lista para ver se alguém me
> > > ajudaria...
> > >
> >
> >    Fácil. "use JavaScript;".
> >    Mas instale o módulo primeiro:
> >
> >    http://search.cpan.org/~claesjac/JavaScript-1.00/lib/JavaScript.pm
> > <http://search.cpan.org/%7Eclaesjac/JavaScript-1.00/lib/JavaScript.pm>
> >
> >    E prometa para mim que você sempre vai respeitar restrições
> > codificadas no robots.txt (http://en.wikipedia.org/wiki/Robots.txt),
> > e que você vai manter o nível ético e moral da sua profissão
> > elevado. ;-)
> >
> >    Putamplexos, e boa diversão.
> > --
> > Luis Motta Campos is software engineer,
> > perl fanatic evangelist, and amateur {cook, photographer}
> >
> >
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
>
>
>
> --
> Atenciosamente,
>
> Roan Brasil Monteiro
> Presidente do Rotaract Club Lauro de Freitas D4550
> Gestão 2006/2007
> ________________________________
> *-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*
> Faculdade UNIME
> www.unime.com.br
> BSI - Bacharelado de Sistema de Informação
> Roan Brasil Monteiro
> _____________________
> *-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*
>
> "NA LUTA ENTRE BATMAN E PINGÜIM,
> EU SOU MAIS O PINGÜIM..." by Roan
> ____
> °v°   NÃO USE DROGAS,
> /(_)\  USE GNU/LINUX
> ^ ^
> Por que ver o MUNDO através de 'janelas'
> Se você pode usar portas.
>
> "Software Livre:
>     Socialmente Justo,
>     Economicamente Viável,
>     Tecnologicamente Sustentável"
>



-- 
Atenciosamente,

Roan Brasil Monteiro
Presidente do Rotaract Club Lauro de Freitas D4550
Gestão 2006/2007
________________________________
*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*
Faculdade UNIME
www.unime.com.br
BSI - Bacharelado de Sistema de Informação
Roan Brasil Monteiro
_____________________
*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*

"NA LUTA ENTRE BATMAN E PINGÜIM,
EU SOU MAIS O PINGÜIM..." by Roan
____
°v°   NÃO USE DROGAS,
/(_)\  USE GNU/LINUX
^ ^
Por que ver o MUNDO através de 'janelas'
Se você pode usar portas.

"Software Livre:
    Socialmente Justo,
    Economicamente Viável,
    Tecnologicamente Sustentável"
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070125/a5f70d03/attachment-0001.html 


Mais detalhes sobre a lista de discussão Cascavel-pm