vueコンポーネントにiframe要素を使用するコードの例


本論文では、Vueコンポーネントにiframe要素を使用した例示的なコードを紹介します。
このページで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" rel="external nofollow" 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>
しかし、httml 5はダイアログのための新しい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;
例: