0

HTMlsimpledomを使用して、DB にアクセスできなくなったクライアントのために古い Web サイトを破棄しています。

このサイトは、使用可能なクラスがほとんどないコーディングの悪夢であり、テーブルをほとんど使用しています。

(少し複雑にするために、サイトは私が知らない奇妙な文字を生成する外国語で書かれています.(しかし、それは実際の問題ではありません))

とにかく-ページの1つのカテゴリで、ある種の歪んだ/昔ながらのAjax / JSで電話番号を開く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は情報タイプ (電話、ファックス、名前など)である Firebug コンソールにも表示されます。

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

どの言語かはわかりませんが、結果の電話を表示するには、右側の緑色の電話アイコンをクリックする必要があります..

4

1 に答える 1

1

その AJAX 要求への応答は、単なる生の XML データです。showIndexPhone()データを取得して変数xmlDocを設定していますが、他には何もしていません。関数名にもかかわらず、実際にはどこにも表示されません。

とにかく、PHP を使用file_get_contents()して XML データをダウンロードし、そのいくつかの XML パーサーの 1 つを使用してそれを分解することができます。Programming PHP book には、XML の処理方法を説明する章全体があります。

于 2013-04-03T05:15:09.487 に答える