利用AJAX讀取本地xml
阿新 • • 發佈:2018-11-14
function getEdiInfo(buttonObj,divId,containerCode){
var strResult;
strResult = "app040";
window.navigate(strResult);
$("#"+divId).html("<h3>正在獲取H2000資訊......</h3>");
loadEdiXML();
}
1,MFC裡實現類:class CIPSHtmlView : public CHtmlView
2,重寫虛擬函式:
virtual void OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel);
3,
void CIPSHtmlView::OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel)
{
m_strUrl = lpszURL;
if(m_strUrl.Right(6) == L"app040")
{
//想做的操作
}
function loadEdiXML(){//kang add 讀本地edi.xml檔案,並顯示
//1,判斷本地是否存在picno_EDI.xml檔案,若存在按鈕變灰不可用並顯示資訊
var ipsXMLStr = document.getElementById("ipsXML").value.trim();
var ipsXMLDom = getXmlFromStr(ipsXMLStr);
var buttonObj = $("input[name='getEdiButton']");//
buttonObj.attr("disabled",true);//設定按鈕不可見
if(ipsXMLDom === false ){
//buttonObj.disabled = false;
buttonObj.removeAttr("disabled");
return;
}
var xmlDoc;
var EdiXMLPath = ipsXMLDom.selectSingleNode("/IDR/@EdiXMLPath").text;//獲得edi.xml檔案的路徑
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try //Firefox, Mozilla, Opera, etc.
{
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e) {
//buttonObj.disabled = false;
buttonObj.removeAttr("disabled");
}
}
if(xmlDoc != null){
//同步方式載入XML資料
xmlDoc.async = false;
//根據XML文件名稱裝載
xmlDoc.load(EdiXMLPath);
var divId = $("div.ediDiv")[0].id;//選擇器
//buttonObj.disabled = true;
displayMain(xmlDoc,divId,buttonObj,false);//顯示資訊
}else{
//2,若不存在,則按鈕可用,使用者可點選獲得edi
//buttonObj.disabled = false; // 這種方式失效
buttonObj.removeAttr("disabled");//用這種方式
$("#" + divId).html("<h3>無相關報關單、艙單資訊!</h3>");
return;
}
}