vue组件中使用iframe元素
2017-08-31 11:51
681 查看
需要在本页面中展示vue组件中的超链接,地址栏不改变的方法:
<template> <div class="accept-container"> <div class="go-back" v-show="goBackState" @click="goBack">GoBack</div> <ul> <li v-for="item in webAddress"> <a :href="item.link" target="showHere" @click="showIframe">{{item.name}}</a> </li> </ul> <iframe v-show="iframeState" id="show-iframe" frameborder=0 name="showHere" scrolling=auto src=""></iframe> </div> </template> <script> export default { name: 'hello', data () { return { iframeState:false, goBackState:false, webAddress: [ { name:'segmentFault', link:'https://segmentfault.com/a/1190000004502619' }, { name:'博客', link:'http://vuex.vuejs.org/' }, { name:'特效', link:'http://www.yyyweb.com/377.html' } ] } }, mounted(){ const oIframe = document.getElementById('show-iframe'); const deviceWidth = document.documentElement.clientWidth; const deviceHeight = document.documentElement.clientHeight; oIframe.style.width = deviceWidth + 'px'; oIframe.style.height = deviceHeight + 'px'; }, methods:{ goBack(){ this.goBackState = false; this.iframeState = false; }, showIframe(){ this.goBackState = true; this.iframeState = true; } } } </script> <style scoped> </style>
需要使同层元素不被覆盖,可以加
<iframe id="dialogFrame" frameborder="0" scrolling="no" style="background-color:transparent; position: absolute; z-index: -1; width: 100%; height: 100%; top: 0;left:0;"></iframe>
不过html5有新的dialog元素用于对话框。
iframe的一些方法:
获取iframe内容:
var iframe = document.getElementById("iframe1"); var iwindow = iframe.contentWindow; var idoc = iwindow.document; console.log("window",iwindow);//获取iframe的window对象 console.log("document",idoc); //获取iframe的document console.log("html",idoc.documentElement);//获取iframe的html console.log("head",idoc.head); //获取head console.log("body",idoc.body); //获取body
自适应 iframe:
即1去掉滚动条,2设置宽高
var iwindow = iframe.contentWindow; var idoc = iwindow.document; iframe.height = idoc.body.offsetHeight;
例子:
<iframe id="google_ads_frame2" name="google_ads_frame2" width="160" height="600" frameborder="0" src="target.html" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true"></iframe>
相关文章推荐
- vue组件中使用iframe元素
- vue组件中使用iframe元素的示例代码
- vue基本使用--refs获取组件或元素
- iframe给主页面元素赋值【使用jquery获取页面数据】 .
- 使用vue配合组件--转载
- Vue组件-使用插槽分发内容
- 通过npm引用的vue组件使用详解
- 使用 vue 构建 video 组件
- iframe使用方法之:用js操纵iframe里面的元素
- vue 使用ref 让父组件调用子组件的方法
- 在vue项目中使用element-ui的Upload上传组件的示例
- Vue系列:在vux的popup组件中使用百度地图遇到显示不全的问题
- better-scroll上拉加载 和下拉刷新 的使用(基于vue写成组件的形式)
- 使用Jquery操作iframe中的元素
- vue-vux使用 cell/cell-box 组件 点击展开其他内容的时候修改过的数据会复原解决思路之一
- 关于vue组件中定时器中只能使用箭头函数的问题
- 使用js控制iframe中的各元素
- vue组件的开发使用-组件的创建
- 使用js操作子页面iframe内的元素节点
- 详解vue2.0 transition 多个元素嵌套使用过渡