Comment écrire un script Greasemonkey à poignée __doPostBack ()
-
28-09-2019 - |
Question
Je viens d'un milieu de calcul scientifique et ont une certaine histoire avec certaines langues populaires et la programmation non-populaires (ad hoc) mais je suis tout à fait étranger à la programmation côté client et JavaScript.
J'ai écrit quelques JavaScript trivial pour mes paramètres Greasemonkey avant, mais c'est tout.
Mes préoccupations question: 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 informations sont fournies dans une table de grille classée selon les lettres que le nom de la société et à un commence maximum de 10 lignes par grille est donnée comme on peut le voir. De plus en bas à droite de la page, il écrit combien de pages est cette info se répand.
Par exemple, vous pouvez appeler à partir de la console Firebug:
__doPostBack('ctl00$cphContent$ctl00$lbtnT','')
pour obtenir les entreprises commençant par « T » et vous pouvez parcourir les onglets de ce 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 le 1er, 2e et 3e pages de ce tableau, respectivement.
J'ai essayé de sérialisation en publiant méthode __doPostBack()
pour un tableau donné de lettres et de chiffres en les enchaînant à la chaîne fixée au-dessus, mais il n'a pas réussi.
Alors, comment puis-je utiliser la méthode de __doPostBack()
et ajoutez toutes ces tables sous résultantes et obtenir les données d'ensemble?
Y at-il une ressource à lire pour ce genre de tâches?
Je présente mes excuses pour ma question amateur de tous les pirates JS.
La solution
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"));
}
});