0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【javascript, css】iframe の読み込み時のGIFロード画像表示【SAMEORIGIN】

Posted at

iframe の読み込み時のGIFロード画像表示

・検索画面の結果表示用として iframe を利用
・spring framework の環境ではデフォルトでは使えないので オプション設定 も載せます

環境

・Windows10 64bit
・SpringFramework 4
・Java 8
・jQuery 3.4.1

web.xml 設定追加

設定しないとブラウザで表示してくれないので・・・
今回は同じドメインでの利用なので SAMEORIGIN 設定にしてます。

  <!-- クリックジャッキング対策 -->
  <filter>
    <filter-name>SecurityFilter</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
    <init-param>
      <!-- iframe 用 -->
      <param-name>antiClickJackingOption</param-name>
      <param-value>SAMEORIGIN</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>SecurityFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

ロード中の画像を準備

https://loading.io/
すばらしく簡単にカスタマイズできるロード中画像が作れます。
loading.gif

iframe の css

iframe の真ん中に表示設定

<style>
.iframe-placeholder {
   background-image: url('${imagePath}/loading.gif');
   background-position: center center;
   background-repeat: no-repeat;
}
</style>

iframe

      <iframe id="iframeResults" class="results_area iframe-placeholder" src="about:blank" name="results">
        この部分はインラインフレームを使用しています。
      </iframe>

javascript

    // iframe ロード時に css 無効化 (画像撤去)
    $('#iframeResults').on('load', function(){
    	$(this).removeClass('iframe-placeholder');
    });
    // フォームサブミット時に css 有効化 (画像表示)
    $('#myForm').on('submit', function(evt){
    	$(this).addClass('iframe-placeholder');
    });

関係ないですが、Edge が chromium 系になって本当に良かった・・・。

以上です、お疲れさまでした!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?