您好,登錄后才能下訂單哦!
小編給大家分享一下JS如何跨域取XML,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
父頁面HTML:
代碼如下:
<iframe id="hiddenIframe" ></iframe>
<button value="獲取數據" onclick="getData()"></button>
<!-- 為什么沒有直接display:none;或者visibility: hidden;? 【稍后解釋:標記】-->
父頁面JS:
代碼如下:
document.domain = "xxx.com";
function getData(data) {
if (data == "" || data == undefined || data == null) {
sendData("a=1&b=2"); //參數格式任意,相當于你get請求時發的參數
}
else {
alert("獲取的數據:" + data)
} }
function sendData(param) {
var childWindow = document.getElementById('testIframe').contentWindow;
childWindow.sendData(param); //驅動作用,驅動隱藏域內的方法去調用AS中獲取XML的API方法
}
function change() {
document.getElementById("testIframe").src = "xx.html"; //隱藏域URL
}
子頁面JS:
代碼如下:
document.domain = "xxx.com";
function sendData(paramFromParent) {
var severUrl = 'xxx.com';
//此處對paramFromParent進行處理 獲得完整的方位xxx.xml的URL
//然后調用AS的URLLoader方法去獲取URL下的數據
//獲取成功后調用下面的方法驅動父頁面中的getData方法
}
function getData(backData) {
window.parent.getData(backData);
}
標記:沒有用display或者visibility是因為:在IE瀏覽器下,當你的iframe元素設置樣式為此兩點時候,框架內的JS不進行加載,也就無法進行通信了......
方便理解,上圖說話
程序流程:
1.加載JS,聲明父頁面window下的sendData和getData方法
2.加載iframe
3.iframe中運行其中的AS代碼
4.AS跨域獲取xml文件解析處理
5.調用window.parent.getData以驅動父頁面JS,傳遞數據解析處理好的數據
以上是“JS如何跨域取XML”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。