2010-11-01 3 views
0

Je viens d'un environnement de calcul scientifique et j'ai un peu d'histoire avec des langages de programmation populaires et non-populaires (ad hoc) mais je suis complètement étranger au côté client programmation et JavaScript.Comment écrire un script Greasemonkey pour gérer __doPostBack()

J'ai déjà écrit du JavaScript trivial pour mes paramètres Greasemonkey, mais c'est tout.

Ma question concerne: http://www.ise.org/sirketler/sirketler.aspx

Je suis en train d'obtenir toutes les données sur les titres et les sociétés de la table donnée dans l'URL ci-dessus qui est le site de turc Bourse d'Istanbul.

Ces données sont données dans une table de grille classée selon les lettres que le nom de l'entreprise commence et à un maximum de 10 lignes par grille est donné comme on peut le voir. Aussi en bas à droite de la page, il y a combien de pages cette information est-elle répartie.

Par exemple, vous pouvez appeler à partir de la console Firebug:

__doPostBack('ctl00$cphContent$ctl00$lbtnT','') 

pour obtenir les entreprises qui commencent par « T » et vous pouvez parcourir les onglets de ces tableau par l'émission:

__doPostBack('ctl00$cphContent$ctl00$radGridSirketler$ctl00$ctl03$ctl01$ctl05','') 
__doPostBack('ctl00$cphContent$ctl00$radGridSirketler$ctl00$ctl03$ctl01$ctl07','') 
__doPostBack('ctl00$cphContent$ctl00$radGridSirketler$ctl00$ctl03$ctl01$ctl09','') 

etc. pour les première, deuxième et troisième pages de cette table respectivement.

J'ai essayé de sérialiser cela en émettant la méthode __doPostBack() pour un tableau donné de lettres et de nombres en les concaténant à la chaîne fixe ci-dessus mais cela n'a pas réussi.

Alors, comment puis-je utiliser la méthode __doPostBack() et ajouter tous ces sous-tableaux et obtenir les données globales?

Existe-t-il une ressource à lire pour ce genre de tâches? Je m'excuse pour ma question d'amateur de tous les pirates informatiques JS.

+0

Vous voulez donc dire que vous voulez que les résultats globaux de données (par exemple à partir de plusieurs pages) apparaissent sur la page comme une seule table? –

+0

Oui, exactement. Et ensuite les accéder à partir de mon application ou les enregistrer sur le disque. – oakenshield1

+0

> * "Accédez-y plus loin" * Vous voulez donc dire que vous voulez qu'il soit encore triable? –

Répondre

1

Espérons que cet exemple éclairera votre chemin:

// ==UserScript== 
// @name   Examples : sirketler 
// @namespace  http://gm.wesley.eti.br/examples 
// @description Simulation of an aspx PostBack request 
// @include  http://www.ise.org/sirketler/sirketler.aspx 
// @require  http://userscripts.org/scripts/source/63808.user.js 
// @require  http://userscripts.org/scripts/source/89515.user.js 
// ==/UserScript== 

AspxPostBackRequest({ 
    "url" : "http://www.ise.org/sirketler/sirketler.aspx", 
    "manager" : "ctl00$ScriptManager1", 
    "eventTarget" : "ctl00$cphContent$ctl00$lbtnT", 
    "callback" : function(xhr) 
    { 
     var content = document.createElement("div"); 
     content.innerHTML = xhr.responseText.split("|")[3]; 

     alert(xpath("./div/table/tbody/tr", content).map(function(row) 
     { 
      return [].slice.call(row.cells).map(function(col) 
      { 
       return col.textContent.replace(/^\s+|\s+$/gm, ""); 
      }); 
     }).join("\n")); 
    } 
}); 
+0

J'apprécie vraiment votre effort pour dessiner ceci mais cela n'a pas fonctionné. Je l'ai installé en tant que script utilisateur GreaseMonkey mais rien n'a changé sur cette page. Pouvez-vous expliquer un peu comment utiliser ce script? – oakenshield1

+0

Copiez le code et enregistrez-le sous .user.js, puis faites-le glisser dans Firefox. Une fois installé, accédez à http://www.ise.org/sirketler/sirketler.aspx. une fenêtre d'alerte devrait apparaître avec les données résultantes que vous voulez – w35l3y

+0

Cela fonctionne, merci beaucoup! – oakenshield1

Questions connexes