亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

jQuery實現跨域iframe接口方法調用

 更新時間:2015年03月14日 10:53:58   投稿:hebedich  
頁面a.html域名為www.a.com嵌入頁面http://www.b.com/b.html,b.html要調用a.html中的js函數,由于兩個頁面不在一個域中,會提示沒權限。如何解決該問題呢,請看下面示例代碼。

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.stringify(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);

a.html

復制代碼 代碼如下:

<!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>

b.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>

以上就是本文所述的iframe跨域的解決方案了,希望大家能夠喜歡。

相關文章

  • 解決jquery版本沖突的有效方法

    解決jquery版本沖突的有效方法

    這篇文章主要介紹了解決jquery版本沖突的有效方法,對于web設計的兼容性調試很有借鑒價值,需要的朋友可以參考下
    2014-09-09
  • jquery css 設置table的奇偶行背景色示例

    jquery css 設置table的奇偶行背景色示例

    jquery css 設置table的奇偶行背景色
    2014-06-06
  • jQuery UI 實現email輸入提示實例

    jQuery UI 實現email輸入提示實例

    本文為大家介紹下使用jQuery UI 實現email輸入提示,具體思路如下,感興趣的朋友可以參考下
    2013-08-08
  • jquery實現全選功能

    jquery實現全選功能

    這篇文章主要為大家詳細介紹了jquery實現全選功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JQuery學習筆記 實現圖片翻轉效果和TAB標簽切換效果

    JQuery學習筆記 實現圖片翻轉效果和TAB標簽切換效果

    為了保證前臺頁面的整潔,我們習慣性地將CSS放入一個單獨的.CSS文件中以便調用,而JS也同樣可以放到單獨的JS文件中去,并且頁面上的事件如onclick,onmouseover也可以分離出來,現在網上比較流行JQuery
    2008-11-11
  • 移動端jQuery修正Web頁面滑動時div問題的兩則實例

    移動端jQuery修正Web頁面滑動時div問題的兩則實例

    這篇文章主要介紹了移動端jQuery修正Web頁面滑動時div問題的兩則實例,分別針對頂部固定fixed不為0時滑動出現的閃動以及touchmove的受阻止的相關問題,需要的朋友可以參考下
    2016-05-05
  • jquery延遲對象解析

    jquery延遲對象解析

    第一次認識jquery延遲對象,這篇文章主要為大家詳細解析JQ延遲對象的相關概念,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • jQuery給元素添加樣式的方法詳解

    jQuery給元素添加樣式的方法詳解

    這篇文章主要介紹了jQuery給元素添加樣式的方法,結合實例形式詳細分析了jQuery給元素添加樣式的各種常見操作技巧,需要的朋友可以參考下
    2015-12-12
  • jQuery寫fadeTo示例代碼

    jQuery寫fadeTo示例代碼

    這篇文章主要介紹了使用jQuery寫的fadeTo,需要的朋友可以參考下
    2014-02-02
  • jQuery操作JSON的CRUD用法實例

    jQuery操作JSON的CRUD用法實例

    這篇文章主要介紹了jQuery操作JSON的CRUD用法,實例分析了jQuery進行CURD的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02

最新評論