Maison  >  Article  >  interface Web  >  jQuery implémente la méthode d'interface iframe inter-domaines appelant_jquery

jQuery implémente la méthode d'interface iframe inter-domaines appelant_jquery

WBOY
WBOYoriginal
2016-05-16 16:09:321121parcourir

cross.js

复制代码 代码如下 :

(fonction (globale){
  global.Cross = {
    gestionnaire de signaux : {},
    sur : fonction (signal, fonction) {
      this.signalHandler[signal] = func;
    },
    appel : fonction (win, domaine, signal, données, callbackfunc){
      var notice = {"signal": signal, "data": data};
      si(!!callbackfunc){
          notice["callback"] = "callback_" new Date().getTime();
          Cross.on(avis["callback"], callbackfunc);
      >
      var noticeStr = JSON.stringify(notice);
      win.postMessage(noticeStr, domaine);
    >
  };
  $(window).on("message", fonction(e) {
    var realEvent = e.originalEvent,
        data = realEvent.data,
        swin = realEvent.source,
        origin = realEvent.origin,
        protocole ;
    essayez {
        protocole = 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)){
          supprimer Cross.signalHandler[protocol.signal];
        >
    } attraper(e) {
      console.log(e);
      throw new Error("erreur croisée.");
    >
  });
})(fenêtre);

a.html

复制代码 代码如下 :



 
   
   
    <script><br>       fonction call_b(){<br>         var ifw = $("#ifr")[0].contentWindow;<br>         //调用iframe子页面的公开的test接口, 子页面域名为<a href="http://localhost:8088">http://localhost:8088</a><br>         Cross.call(ifw,"<a href="http://localhost:8088%22,%22test%22,%7Bt">http://localhost:8088","test",{t</a>: $("#txt").val()});<br>       ><br>     </script>
 

 
   
    appel