最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

jQuery做出跨域iframe接口调用步骤详解

来源:动视网 责编:小采 时间:2020-11-27 19:52:20
文档

jQuery做出跨域iframe接口调用步骤详解

jQuery做出跨域iframe接口调用步骤详解:这次给大家带来jQuery做出跨域iframe接口调用步骤详解,jQuery做出跨域iframe接口调用的注意事项有哪些,下面就是实战案例,一起来看一下。cross.js(function(global){ global.Cross = { signalHandler: {}, on: function(
推荐度:
导读jQuery做出跨域iframe接口调用步骤详解:这次给大家带来jQuery做出跨域iframe接口调用步骤详解,jQuery做出跨域iframe接口调用的注意事项有哪些,下面就是实战案例,一起来看一下。cross.js(function(global){ global.Cross = { signalHandler: {}, on: function(


这次给大家带来jQuery做出跨域iframe接口调用步骤详解,jQuery做出跨域iframe接口调用的注意事项有哪些,下面就是实战案例,一起来看一下。

cross.js

(function(global){
 global.Cross = {
 signalHandler: {},
 on: function(signal, func){
 this.signalHandler[signal] = func;
 },
 call: function(win, domain, signal, data, callbackfunc){
 var notice = {"signal": signal, "data": data};
 if(!!callbackfunc){
 notice["callback"] = "callback_" + new Date().getTime();
 Cross.on(notice["callback"], callbackfunc);
 }
 var noticeStr = JSON.
string
ify(notice);
 win.postMessage(noticeStr, domain);
 }
 };
 $(window).on("message", function(e) {
 var realEvent = e.originalEvent,
 data = realEvent.data,
 swin = realEvent.source,
 origin = realEvent.origin,
 protocol;
 try {
 protocol = JSON.parse(data);
 var result = global.Cross.signalHandler[protocol.signal].call(null, protocol.data);
 if(!!protocol["callback"]){
 Cross.call(swin, origin, protocol["callback"], {result: result});
 }
 if(/^callback_/.test(protocol.signal)){
 delete Cross.signalHandler[protocol.signal];
 }
 } catch (e) {
 console.log(e);
 throw new Error("cross error.");
 }
 });
})(window);
<!doctype HTML>
<html>
 <head>
 <script src="jquery-1.8.3.min.js"></script>
 <script src="cross.js"></script>
 <script>
 function call_b(){
 var ifw = $("#ifr")[0].contentWindow;
 //调用iframe子页面的公开的test接口, 子页面域名为http://localhost:8088
 Cross.call(ifw,"http://localhost:8088","test",{t: $("#txt").val()});
 }
 </script>
 </head>
 <body>
 <input id="txt" type="text"/>
 <button 
onclick
="call_b()">call</button>
 <iframe id="ifr" src="http://localhost:8088/b.html"></iframe>
 </body>
</html>
<!doctype HTML>
<html>
 <head>
 <script src="jquery-1.8.3.min.js"></script>
 <script src="cross.js"></script>
 <script>
 //对外公开一个接口命名为test
 Cross.on("test", function(data){
 alert(data.t);
 });
 </script>
 </head>
 <body>
 </body>
</html>

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

Jquery操作js数组及对象步骤详解

jQuery插件实现表格隔行换色并且与鼠标事件实现互动

文档

jQuery做出跨域iframe接口调用步骤详解

jQuery做出跨域iframe接口调用步骤详解:这次给大家带来jQuery做出跨域iframe接口调用步骤详解,jQuery做出跨域iframe接口调用的注意事项有哪些,下面就是实战案例,一起来看一下。cross.js(function(global){ global.Cross = { signalHandler: {}, on: function(
推荐度:
标签: 方法 接口 详解
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top