# 八.hash

  • 实现原理:
    • a、b 页面同源
    • a、c 页面跨域
    • a:a 页面有 c 页面
    • c:创建 b 页面并传值
    • b:window.parent.parent.location.hash = location.hash
    • a:得到 c 中的 b 传过来的值
    • a.html
<iframe src='http://localhost:4000/c.html' id="frame" frameborder=" 0" style="border:1px solid red
    "></iframe>
<script>
    window.onhashchange = function () {
        console.log("接受自c页面", location.hash)
    }
</script>
1
2
3
4
5
6
7
  • b.html
window.parent.parent.location.hash = location.hash
1
  • c.html
let iframe = document.createElement("iframe")
iframe.src = "http://localhost:3000/b.html#send-to-a-page"
document.body.appendChild(iframe)
1
2
3