頁面結構:index.htm 為框架頁,左側隱藏 action.php(寬度 0),右側顯示 main.htm。兩種資料傳遞方式:
<!-- index.htm -->
<frameset cols="0,*">
<frame name="leftFrame" src="action.php">
<frame name="rightFrame" src="main.htm">
</frameset>
action.php 寫入 Cookie:
<?php
$val = rand(0,100);
setcookie('action', $val, time()+900, '/');
?>
main.htm 輪詢讀取:
<script>
setInterval(function(){
document.test.current_cookie.value = document.cookie;
}, 200);
</script>
action.php 輸出 JavaScript 直接寫入父框架表單:
<?php $val = rand(0,100); ?>
<script>
parent.rightFrame.test.current_cookie.value = "";
</script>
| 特性 | Cookie 方式 | DOM 直接存取 |
|---|---|---|
| 同源策略 | 同域名自動共享 | 需同域名,否則跨域被阻擋 |
| 即時性 | 輪詢延遲 | 即時觸發 |
| 資料量 | 受 4KB 限制 | 無明確限制 |
| 適用場景 | 簡單狀態同步、跨頁面持久化 | 單頁應用內部模組通訊 |