需要在本页面中展示 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> |