Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Indy et javascript [ Archives / Réseau et Internet ] (Pierre42)

vendredi 22 octobre 2004 à 18:21:44 | Indy et javascript

Pierre42

Membre Club

Je cherche à récuperer des pages html sur un site. J'utilise le composant Indy idhttp. Je precise le serveur et l'url et je recupere mon code HTML avec la fonction Get.

Probleme : sur certaines pages je dois lancer un javascript afin de cocher des cases ou choisir des items dans une liste puis valider le formualire ( document.forms[0].submit ) pour passer à la page suivante.

Or, ca coince car le javascript n'est pas une url.

Quelqu'un sait il comment je peux faire pour que idhttp sache que j'envoi un javascript et non une url ?

Merci beaucoup

Laurent Rigaldies
France Progiciels Distribution
www.franceprogiciels.com

vendredi 18 janvier 2008 à 17:53:36 | Re : Indy et javascript

TarikBelSOFT

bsr pierre.

si t'a trouvé la solution. please dite le moi.

merci

vendredi 18 janvier 2008 à 18:30:41 | Re : Indy et javascript

Pierre42

Membre Club
C'est assez facile en fait, il suffit de faire un idhttp1.post au lieu d'un idhttp.get et de passer la liste des boutons à cocher.



samedi 19 janvier 2008 à 10:16:46 | Re : Indy et javascript

TarikBelSOFT



oui mais pour mon cas le site Web utilise JavaScript pour avoir accès à autre page

voici le code :
------------------------------------------------------------------------------
<script language="javascript" type="text/javascript">
<!--
    function __doPostBack(eventTarget, eventArgument) {
        var theform;
        if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
            theform = document.ReportViewer;
        }
        else {
            theform = document.forms["ReportViewer"];
        }
        theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
        theform.__EVENTARGUMENT.value = eventArgument;
        theform.submit();
    }
// -->
</script>


<a href="javascript:__doPostBack('CrystalReportViewer1$_ctl1$_ctl0$_ctl1','')"><img title="Export" src="/crystalreportviewers/images/toolbar/export.gif" alt="" border="0" height="24" width="24" /></a>
-------------------------------------------------------------------------------------

Si le indy est incompatible avec le javascript. y'a t'il d'autre solution pierre


samedi 19 janvier 2008 à 11:06:43 | Re : Indy et javascript

Pierre42

Membre Club
Indy n'est pas compatible ou incompatible avec javascript, c'est un composant de transmission utilisant le protocole http. Le javascript est un langage de script, ce sont deux choses totalement différentes. Oublie le javascript et regarde uniquement les données transmises par http.

Quelle est le site ? Quelles sont les deux pages ? je vais regarder et te donner un exemple concret à partir de celles-ci.  

Laurent Rigaldies
France Progiciels Distribution
www.franceprogiciels.com

samedi 19 janvier 2008 à 17:05:07 | Re : Indy et javascript

TarikBelSOFT

				voici le code html :
				

<form name="ReportViewer" method="post" action="ReportViewer.aspx" id="ReportViewer">
 
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" value=".................">
 
<script language="javascript"type="text/javascript">
<!--
function __doPostBack(eventTarget, eventArgument){
var theform;
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
theform = document.ReportViewer;
}

else{
theform = document.forms["ReportViewer"];
}

theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>

<a href="javascript:__doPostBack('CrystalReportViewer1$_ctl1$_ctl0$_ctl1','')">
<img title="Export" src="/crystalreportviewers/images/toolbar/export.gif" alt="" border="0" style="height:24px;width:24px;" /></a
 
Mon code source :

procedure TForm1.ExportClick(Sender: TObject);
var
i:integer;
begin

memo1.Clear;
loginurl:='http://212.100.209.9/reports/ReportViewer.aspx';
Params := TStringList.Create;
try
cookies:=tstringlist.Create;

html:=idhttp1.Get('http://212.100.209.9/reports/ReportViewer.aspx');

count:=IdCookieManager1.CookieCollection.count;
for i:=1 to count do
cookies.Add(IdCookieManager1.CookieCollection.Items[i-1].CookieText);


html:=idhttp1.Get(loginUrl);

poz:=pos('name="__VIEWSTATE" value="',html);
delete(html,1,poz+25);
viewstate:=copy(html,1,pos('"',html)-1);

with Params do
begin
Values['__VIEWSTATE'] := viewstate;
Values['__EVENTTARGET'] := 'CrystalReportViewer1:_ctl1:_ctl0:_ctl1';
end;
memo6.Text:=params.Text;
setCookies;
IdHTTP1.HandleRedirects:=false;
try
HTML := IdHTTP1.Post(loginurl, Params);
memo1.Lines.add(IdHTTP1.Get(loginurl));

except on e: EIdHTTPProtocolException do
begin
if e.ReplyErrorCode<>302 then
raise e;

count:=IdCookieManager1.CookieCollection.count;
for i:=1 to count do
cookies.Add(IdCookieManager1.CookieCollection.Items[i-1].CookieText);

setcookies;
html:=idhttp1.Get(IdHTTP1.Response.Location);
memo1.Lines.add(IdHTTP1.Get(loginurl));
end;
end;

except on e: EIdHTTPProtocolException do
begin
memo2.lines.add(idHTTP1.response.ResponseText);
memo3.lines.add(e.ErrorMessage);
end;

end;

Params.Free;
end;

samedi 19 janvier 2008 à 17:07:45 | Re : Indy et javascript

TarikBelSOFT

Mais avant ça faut m'identifié. je fait la méme chose
URL : http://212.100.209.7/security/Login.aspx?
Merci

samedi 19 janvier 2008 à 17:11:16 | Re : Indy et javascript

Pierre42

Membre Club
Salut,

Je t'ai demandé le nom du site et la page de départ et la page de destination, pas le javascript.

Laurent Rigaldies
France Progiciels Distribution
www.franceprogiciels.com

Laurent Rigaldies
France Progiciels Distribution
www.franceprogiciels.com

samedi 19 janvier 2008 à 17:23:27 | Re : Indy et javascript

Pierre42

Membre Club
Resalut,

Il faut comprendre une chose avec asp.net, c'est qu'il stocke certaines valeurs sur le serveur, avec le
VIEWSTATE. Donc il est certainement nécessaire de faire le chemin complet d'un utilisateur humain avant d'arriver aux pages que tu souhaites télécharger.
On ne peut pas acceder directement à la page
http://212.100.209.9/reports/ReportViewer.aspx faute d'avoir valider ces infos. Le cookie ne sert donc à rien.

Que cherches tu à faire précisement ?

Laurent Rigaldies
France Progiciels Distribution
www.franceprogiciels.com

samedi 19 janvier 2008 à 18:15:07 | Re : Indy et javascript

TarikBelSOFT

Je suis entrain de réaliser un logiciel pour un client. afin qu'il puisse e connecté et voir ses données.
(pour les données j'utilise pos et copy).

Je fait le chemin complet. je passe par 4 pages:

http://212.100.209.7/security/login.aspx?
http://212.100.209.7/Security/MainPage.aspx
http://212.100.209.9/reports/GroupInfo.aspx?tempSessID=1b379395-f117-4d72-96de-197a21760baf&culture=ar
enfin : 
http://212.100.209.9/reports/ReportViewer.aspx


1 2

Cette discussion est classé dans : javascript, pages, url, html, indy


Répondre à ce message

Sujets en rapport avec ce message

impression d'une page html contenant du javascipt [ par seni ] Bonjour, je veux imprimer une page html contenant du javascript a partir de Delphi, malheureusement lors de l'appel de la fonction wbBrowser.ExecWB(); Indy - Récupérer Url redirigée [ par Filipe35 ] bonjour je cherche à récupérer l'url "active" de mon composant indy. Le problème vient du fait que je charge une page tel que page.php?id=135 et ce serveur http +controle pc [ par MoveX ] bon, je souhaiterai faire un programme qui, lance sur un pc connecte a internet, permet de prendre le controle de ce pc par l intermediaire de pages h Envoi email format html avec INDY [ par GeulderackK ] Bonjour je voudrais savoir si quelqu'un a un exemple d'envoi de mail au format html avec les composants IndyMerci envoyer une page html avec indy [ par cc59 ] Bonjour,Voilà mon probleme,J'utilise le composant indy IdTCPServer pour renvoyer des pages html, jusque là tout va bien, je renvois une page sur "inte Impossible d'installer Indy [ par ErayK ] bonjour,Je n'arrive pas à installer indy apparement j'ai un probleme avec le fichier DCC32.exeet il doit me manquer des bibliothèques, qqn pourrait me Fichiers Binaire. [ par AMokers ] Salut !Voila j'essaye de faire une fonction qui lis un block par rapport a ce que l'on lui dis mais je n'y arrive pas Il veux pas accepter ca :functio Avis au " débutant" en informatique [ par cheval22 ] Lu Vous etes pas fort en informatique et voulez avoir un site ?Je peut vous donner des conseils et aider afaire un site avec multimania, aol, yahoo .. Pb avec une string ... encore. [ par TheChikenKiller ] Alors expliquons le problème de manière explicative ...Je voudrais faire un logiciel de dl... très original...Je voudrai récupérer le nom de fichier d Ouvrir une URL [ par norton ] Bonjour, comment fait-on pour ouvrir une urlEX: http://www.google.comavec internet explorer depui un programme delphi ?j'ai essayé comme ça mais ça n'


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,45 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.