欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS跨域取XML--借助AS的URLLoader

  發(fā)布時(shí)間:2013-04-08 12:16:41   作者:佚名   我要評(píng)論
本篇文章小編將為大家介紹JS跨域取XML--借助AS的URLLoader,有需要的朋友可以參考一下
最近接到一個(gè)功能拓展需求,新需求中所引用的數(shù)據(jù)接口卻只能提供XML格式……無奈自身功力有限,沒有想到JS方面理想的解決方案,只好尋求AS工程師的幫忙,經(jīng)過近2天的聯(lián)調(diào),最終解決了各瀏覽下的跨域訪問。
下面記錄demo版代碼:
父頁面HTML:

復(fù)制代碼
代碼如下:

<iframe id="hiddenIframe" style="width:0px; height:0px0; border:0px none; *width:1px; *height:0px; overflow:hidden;"></iframe>
<button value="獲取數(shù)據(jù)" onclick="getData()"></button>
<!-- 為什么沒有直接display:none;或者visibility: hidden;? 【稍后解釋:標(biāo)記】-->

父頁面JS:

復(fù)制代碼
代碼如下:

document.domain = "xxx.com";
function getData(data) {
if (data == "" || data == undefined || data == null) {
sendData("a=1&b=2"); //參數(shù)格式任意,相當(dāng)于你get請求時(shí)發(fā)的參數(shù)
}
else {
alert("獲取的數(shù)據(jù):" + data)
} }
function sendData(param) {
var childWindow = document.getElementById('testIframe').contentWindow;
childWindow.sendData(param); //驅(qū)動(dòng)作用,驅(qū)動(dòng)隱藏域內(nèi)的方法去調(diào)用AS中獲取XML的API方法
}
function change() {
document.getElementById("testIframe").src = "xx.html"; //隱藏域URL
}

子頁面JS:

復(fù)制代碼
代碼如下:

document.domain = "xxx.com";
function sendData(paramFromParent) {
var severUrl = 'xxx.com';
//此處對(duì)paramFromParent進(jìn)行處理 獲得完整的方位xxx.xml的URL
//然后調(diào)用AS的URLLoader方法去獲取URL下的數(shù)據(jù)
//獲取成功后調(diào)用下面的方法驅(qū)動(dòng)父頁面中的getData方法
}
function getData(backData) {
window.parent.getData(backData);
}

標(biāo)記:沒有用display或者visibility是因?yàn)椋涸贗E瀏覽器下,當(dāng)你的iframe元素設(shè)置樣式為此兩點(diǎn)時(shí)候,框架內(nèi)的JS不進(jìn)行加載,也就無法進(jìn)行通信了......
方便理解,上圖說話

程序流程:
1.加載JS,聲明父頁面window下的sendData和getData方法
2.加載iframe
3.iframe中運(yùn)行其中的AS代碼
4.AS跨域獲取xml文件解析處理
5.調(diào)用window.parent.getData以驅(qū)動(dòng)父頁面JS,傳遞數(shù)據(jù)解析處理好的數(shù)據(jù)

相關(guān)文章

最新評(píng)論