中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

兩個iframe之間如何傳數據

小億
310
2024-01-19 18:24:49
欄目: 編程語言

兩個iframe之間可以通過以下幾種方式傳遞數據:

  1. 使用postMessage方法:使用postMessage方法可以在不同的iframe之間安全地傳遞數據。一個iframe可以使用postMessage方法將數據發送給另一個iframe,然后另一個iframe監聽并接收數據。可以通過以下代碼在iframe A中發送數據給iframe B:

    // 在iframe A中發送數據給iframe B
    var targetIframe = document.getElementById('iframeB');
    targetIframe.contentWindow.postMessage('Hello from iframe A!', '*');
    

    然后在iframe B中監聽并接收數據:

    // 在iframe B中監聽并接收數據
    window.addEventListener('message', function(event) {
      if (event.origin !== 'http://iframeA.com') return; // 驗證消息來源
      console.log('Received data from iframe A: ', event.data);
    });
    

    在接收消息的iframe中可以通過event.data獲取發送的數據。

  2. 使用localStorage:localStorage是瀏覽器提供的一種存儲數據的機制,可以在不同的iframe之間共享數據。一個iframe可以將數據存儲在localStorage中,然后另一個iframe可以讀取這些數據。可以通過以下代碼在iframe A中存儲數據:

    // 在iframe A中存儲數據
    localStorage.setItem('data', 'Hello from iframe A!');
    

    然后在iframe B中讀取這些數據:

    // 在iframe B中讀取數據
    var data = localStorage.getItem('data');
    console.log('Received data from iframe A: ', data);
    

    請注意,在使用localStorage時需要注意數據的安全性和正確的清理機制。

  3. 使用window.parent對象:如果兩個iframe處于同源(即來自同一個域名),可以使用window.parent對象直接訪問父窗口的全局變量和方法。一個iframe可以通過window.parent對象設置父窗口的變量,然后另一個iframe可以直接讀取這些變量。請注意,這種方法要求兩個iframe來自同一個域名。

    在iframe A中設置父窗口的變量:

    // 在iframe A中設置父窗口的變量
    window.parent.myData = 'Hello from iframe A!';
    

    然后在iframe B中讀取這個變量:

    // 在iframe B中讀取父窗口的變量
    var data = window.parent.myData;
    console.log('Received data from iframe A: ', data);
    

    請注意,這種方法只適用于同源的iframe之間,并且可能會導致全局變量的命名沖突問題。

這些方法可以根據實際情況選擇適合的方式傳遞數據。

0
西华县| 宁南县| 麻江县| 滕州市| 虞城县| 汾西县| 东城区| 汉源县| 宜兴市| 聂拉木县| 新安县| 南涧| 巴彦县| 商河县| 巴中市| 青龙| 赤城县| 凤台县| 扶沟县| 岳池县| 武功县| 建水县| 卓尼县| 和平县| 安丘市| 泾川县| 临湘市| 海盐县| 抚顺县| 丁青县| 定远县| 宁强县| 上犹县| 达尔| 石城县| 二手房| 万年县| 敦煌市| 大石桥市| 新绛县| 班戈县|