バーテンダーエンジニア

元フレアバーテンダーからエンジニアに転職。未経験からのエンジニア転職経験談・実務で感じたこと・個人開発で学んだ内容・日常話などマイペースに発信していきます。仕事ではphp、Laravel、Vue.js、Angular辺りを触ってます。趣味は筋トレ!!ソムリエの資格も持ってます^^

アプリケーション内に外部サイトを表示する方法(Angular)

はじめに

フロントエンド開発で、あるページに外部サイトを表示したいとの要望があった為その対応を行った。

実現方法

htmlのiframeタグを利用する事で、要望を実現する事ができる。

iframeとは、src属性で指定したURL(リンク先ページの内容)をインラインフレーム表示できるHTMLタグの一つです。

html4の頃は非推奨だったようですが、HTML5では非推奨が解除されているようです。

YouTube埋め込みやAmazonの商品リンクなど多く利用されているのも原因ですかね?。。

実装内容

該当のhtmlファイルを以下のように編集します。

// Angularを利用してヘッダー部分を表示する為に利用しています。
<app-service-header
  [serviceName]="serviceName"
  [serviceCategory]="serviceCategory"
  (onClickedClear)="backToTop()"
>
</app-service-header>

// ※外部サイト表示箇所
<div class="iframe-container">
  <iframe
    src="https://angular.jp/"
    frameborder="0"
  ></iframe>
</div>
// ヘッダーの高さを定義しているファイル
@import "../../assets/styles/const.scss";

.iframe-container {
  height: calc(100% - #{$service-header-height});
  iframe {
    width: 100%;
    height: 100%;
  }
}

f:id:YKIchannel:20210304142640p:plain

上記のようにする事で、localhost:4200でアクセスしたページ内にAngularドキュメントページを表示させる事に成功しました。

おまけ

iframeのborderやスクロールバーを削除するには、scrolling="no"、frameborder="no"を利用します。scrilling="no"をすると画面が固定になります。