Come scrivere uno script Greasemonkey per maniglia __doPostBack ()
-
28-09-2019 - |
Domanda
vengo da un background scientifico calcolo e hanno alcuni di storia con alcune lingue popolari e non popolari (ad hoc) la programmazione, ma io sono completamente estraneo alla programmazione lato client e JavaScript.
ho scritto un po 'banale JavaScript per le mie impostazioni di Greasemonkey prima, ma questo è tutto.
La mia domanda riguarda: http://www.ise.org/sirketler/sirketler.aspx
Sto cercando di ottenere tutti i dati relativi titoli e le società dalla tabella riportata nella URL di sopra del quale è il sito turco Borsa di Istanbul.
Questi dati vengono dato all'interno di una tabella griglia classificato secondo le lettere che il nome della società inizia e ad un massimo di 10 righe per griglia è dato come si può vedere. Anche in basso a destra della pagina, ci scrive quante pagine è questa informazione è diffusa.
Ad esempio, è possibile chiamare dalla console di Firebug:
__doPostBack('ctl00$cphContent$ctl00$lbtnT','')
per ottenere le aziende che iniziano con 'T' e si può navigare le schede di questi tabella mediante l'emissione di:
__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','')
ecc. per il 1 °, 2 ° e 3 pagine di questa tabella, rispettivamente.
Ho provato a serializzare questo mediante l'emissione di metodo __doPostBack()
per una determinata serie di lettere e numeri da loro concatenando alla stringa fissa sopra, ma non è riuscito.
Quindi, come posso utilizzare il metodo __doPostBack()
e aggiungere tutte queste tabelle secondarie derivanti e ottenere i dati globale?
C'è una risorsa da leggere per questo tipo di attività?
Mi scuso per la mia domanda amatoriale da tutti gli hacker JS.
Soluzione
Speriamo che questo esempio illuminerà il vostro percorso:
// ==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"));
}
});