如何编写greasemonkey脚本来处理__dopostback()
-
28-09-2019 - |
题
我来自科学计算背景,确实有一些历史,其中有一些流行和非广泛的(临时)编程语言,但我与客户端编程和JavaScript完全陌生。
我以前为我的GreaseMonKey设置写了一些琐碎的JavaScript,但仅此而已。
我的问题问题: http://www.ise.org/sirketler/sirketler.aspx
我正在尝试从上面的URL中给出的证券和公司的所有数据,该数据是土耳其伊斯坦布尔证券交易所的所在地。
此数据是根据公司名称开始的字母分类的网格表中给出的,每条网格最多可用10行。同样在页面的右下角,写了几页,此信息已传播。
例如,您可以从火炉控制台打电话:
__doPostBack('ctl00$cphContent$ctl00$lbtnT','')
为了使公司从“ T”开始,您可以通过发行来浏览这些表的标签:
__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','')
等等,该表的第一页,第二页和第三页。
我试图通过发行来序列化 __doPostBack()
给定的字母数组和数字的方法,通过将它们连接到上面的固定字符串中,但没有成功。
那我该怎么使用 __doPostBack()
方法并附加所有这些结果子表并获取总体数据?
是否有有关此类任务的资源可以阅读?
对于所有JS黑客的业余问题,我深表歉意。
解决方案
希望这个示例能够启发您的道路:
// ==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"));
}
});
不隶属于 StackOverflow