需要在本页面中展示 Vue 组件中的超链接,地址栏不改变的方法:
| <template> | |
|     <div class="accept-container"> | |
| <div class="go-back" v-show="goBackState" @click="goBack">GoBack</div> | |
|         <ul> | |
|             <li v-for="(item,index) in webAddress" :key="index"> | |
| <a :href="item.link" target="showHere" @click="showIframe"></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:'简书', | |
| link:'https://www.jianshu.com/u/c90f05f0ab2b' | |
|                 } | |
|             ] | |
|         } | |
| }, | |
| 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> | |
| <!-- Add "scoped" attribute to limit CSS to this component only --> | |
| <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> | 
