温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JS如何跨域取XML

发布时间:2021-10-11 09:59:46 来源:亿速云 阅读:99 作者:小新 栏目:移动开发

小编给大家分享一下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不进行加载,也就无法进行通信了......
方便理解,上图说话
JS如何跨域取XML
程序流程:
1.加载JS,声明父页面window下的sendData和getData方法
2.加载iframe
3.iframe中运行其中的AS代码
4.AS跨域获取xml文件解析处理
5.调用window.parent.getData以驱动父页面JS,传递数据解析处理好的数据

以上是“JS如何跨域取XML”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI