结合elementui中的drawer,在第一次被打开之前是不会渲染dom的,因此需要等渲染完成才获取iframe组件
vue:
<template>
<el-drawer :with-header="false" :visible.sync="drawer" :before-close="handleClose" class="helpHelperPop" ref="drawer" size="200px">
<div class="height100">
<iframe src="./assisHelpHtml/relatedTopics.html" frameborder="0" class="height100" style=" 100%;" ref="helpNestedFrame" id="helpNestedFrame"></iframe>
</div>
</el-drawer>
</template>
methods: {
closeHelp() {
this.drawer = true;
this.$nextTick(() => {
this.$refs.helpNestedFrame.onload = () => {
this.$refs.helpNestedFrame.contentWindow.子组件方法名()
};
});
},
}
iframe的src中需要添加下面的方法:
<script>
function 子组件方法名(){
console.log('供父组件调用的方法')
}
</script>