91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

兩個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
永福县| 法库县| 玉屏| 五常市| 嘉祥县| 鹤山市| 青神县| 哈尔滨市| 扎兰屯市| 紫阳县| 邹平县| 静乐县| 清苑县| 洪湖市| 固阳县| 鄱阳县| 定边县| 马边| 迁安市| 公安县| 宜州市| 新竹县| 福建省| 民县| 碌曲县| 巴彦淖尔市| 义乌市| 图们市| 新泰市| 姜堰市| 凤城市| 搜索| 崇礼县| 元朗区| 康马县| 阳新县| 红安县| 阳曲县| 平果县| 浙江省| 祁阳县|