我正在使用HTMlsimpledom为不再有权访问数据库的客户废弃旧网站。
该站点是一个编码噩梦,几乎没有可用的类,并且它使用的表最多。
(让事情变得更复杂一些 - 该网站是一些外语,会产生我不知道的奇怪字符。(但那是一个旁注,不是一个真正的问题))
无论如何-一切都很好并且工作正常,除了在一类页面上,它有一个 JS 锚触发器,可以在某种扭曲/老式 Ajax / JS 中打开电话号码。
链接如下所示:
<a class="icon1 clickTip" onclick="showIndexPhone(1517);showIndexMobile(1517);" title="">Phone</a>
所以当然我去搜索的showIndexPhone()
功能是:
function showIndexPhone(id)
{
/*var oContent = oValue = null;
if ((oContent = document.getElementById("IndexPhone_" + id)) && (oValue = document.getElementById("IndexPhoneValue_" + id)))
{
oContent.innerHTML = oValue.innerHTML;*/
/*var oCounter = new Image();
oCounter.src = "./ctr.asp?id=" + id + "&type=2";*/
var xmlDoc = dbsRequest("./ctr.asp?id=" + id + "&type=2");
//}
}
显然,showIndexPhone()
将只是构造一个简单URL
的,如下所示:
http://123.xxx/ctr.asp?id=1517&type=3
.. 并且还将在萤火虫控制台上显示id
文章 ID 和type
信息类型(电话、传真、姓名等)在哪里
然后将它传递给另一个dbsRequest(URL)
看起来像这样的函数:
function dbsRequest(URL) {
try {
var xmlHTTP;
if (dbsBrowserType == "ie") { // code for IE
if (window.XMLHttpRequest) {
xmlHTTP = new XMLHttpRequest();
xmlHTTP.open("GET",URL, false);
xmlHTTP.send(null);
return xmlHTTP.responseXML.documentElement;
}
else if (window.ActiveXObject) {
xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
xmlHTTP.open("GET",URL, false);
xmlHTTP.send();
return xmlHTTP.responseXML.documentElement;
}
}
else if (dbsBrowserType == "ns" || dbsBrowserType == "op") { // code for Mozilla, Opera.
//netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
xmlHTTP = new XMLHttpRequest();
xmlHTTP.open("GET",URL, false);
xmlHTTP.send(null);
return xmlHTTP.responseXML.documentElement;
}
}
catch (e) {
//if (dbsBrowserType == "ie")
// alert("error: " + e.description);
//else if (dbsBrowserType == "ns" || dbsBrowserType == "op")
// alert("error: " + e);
return null;
}
}
然后我就卡住了。
我在 JS 、 AJAX 等方面非常糟糕,当我看到响应实际上是某种形式的 XML 时——我就卡住了。我收到了大约 13,000 个条目 - 手动单击每个条目并不是一个真正的选择..
有什么方法可以获取由该 JS 触发的那些字段?
或者,有没有办法找到/构造响应的 URL 并将其解析为 php?
编辑我
可以在这里找到一个真实的实时页面示例:
http://123.org.il/?pg=indx_entry&CategoryID=171&ArticleID=1517
我不知道它是什么语言,但无论如何你需要点击右边的绿色电话图标才能看到结果电话..