1. 程式人生 > >JS實現兩個頁面之間的通訊

JS實現兩個頁面之間的通訊

兩個不同頁面之間的通訊,通過一個拖拽demo來模擬;

首先,寫好基礎的拖拽程式碼:

  1. <script>
  2.    window.onload = function() {  
  3.        var oDiv = document.getElementById('div');  
  4.        oDiv.onmousedown = function(ev) {  
  5.            var ev = window.event || ev;  
  6.            var disX = ev.clientX - oDiv.offsetLeft;  
  7.            var disY
     = ev.clientY - oDiv.offsetTop;  
  8.            document.onmousemove = function(ev) {  
  9.               var factX = ev.clientX - disX;  
  10.               var factY = ev.clientY - disY;  
  11.               oDiv.style.left = factX + 'px';  
  12.               oDiv.style.top = factY + 'px';  
  13.               localStorage.json
     = JSON.stringify({left:oDiv.offsetLeft,top:oDiv.offsetTop});  
  14.           }  
  15.            document.onmouseup = function() {  
  16.                 document.onmousemove = null;  
  17.            }  
  18.        }  
  19.    }  
  20. </script>

這是將div拖動變化的值存入到本地儲存localstorage,用JSON.stringify將其轉為字串形式:

然後新建一個新建一個demo,獲取本地的資料:

  1. <script>
  2.     window.onload = function() {  
  3.        var oDiv = document.getElementById('div');  
  4.      window.onstorage = function(ev){  
  5.           var json = JSON.parse(localStorage[ev.key]);  
  6.          oDiv.style.left = json.left + "px";  
  7.           oDiv.style.top = json.top + "px";  
  8.       }  
  9.    }  
  10. </script>

   通過onstorage這個方法實現兩個頁面之間的通訊,獲取到本地儲存的資料,轉成數字實現兩個頁面的同步。