问题描述:子页面内容发生变化时,导航栏不会跟切换
解决办法:
window.parent.document.getElementById
demo
html1
<html>
<head><meta charset="UTF-8"><!-- import CSS --><link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body>
<div id="app"><el-menu :default-active="1" class="el-menu-demo" mode="horizontal"><el-menu-item id="t1" index="1">处理中心</el-menu-item><el-menu-item id="t2" index="2"> 我的工作台</el-menu-item><el-menu-item id="t3" index="3">消息中心</el-menu-item><el-menu-item id="t4" index="4">订单管理</el-menu-item></el-menu>
</div>
<div><iframe src="html2.html"></iframe>
</div>
</body>
<!-- import Vue before Element -->
<script src="https://unpkg.com/vue@2/dist/vue.js"></script>
<!-- import JavaScript -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script>new Vue({el: '#app',data: function () {return {visible: false}}})
</script>
</html>
html2
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body>
<script>function sendMessage() {let t1 = window.parent.document.getElementById("t1")t1.classList.remove("is-active")let t2 = window.parent.document.getElementById("t2")t2.classList.add("is-active")}
</script>
<h1>22222222</h1>
<button onclick="sendMessage()">sendMessage</button>
</body>
</html>
在html1中引入html2,在html2中操作html1中的导航元素。
通过点击html2中的按钮,触发。
验证:
点击html2中的按钮后,将 处理中心的 is-active 移除 为 我的工作台 添加 is-avtive
点击之后能看到,明显的样式变化,我的工作台增加的class is-active