質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

3586閲覧

jQuery IE11での実行タイミングが異なる?

code_ugoite

総合スコア18

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/08/11 10:50

編集2018/08/11 10:52

問題点・質問

JavaScript(後述のIframe.js)を使って、以下の2つの動作を実行させています。
0. ナビゲーションメニューをクリック→インラインフレームに表示するページを切り替える(Iframe.js 前半)
0. インラインフレームに表示されるページの高さに、インラインフレームの高さをそろえる(Iframe.js 後半)

コンソールで確認すると、
Chrome, Firefox, Edgeでは、index.htmlをロードしたときと、ナビゲーションメニューをクリックしたときの両方で、Iframe.jsが動作しています。
しかし、Internet Explorerでのみ、index.htmlをロードしたときにIframe.jsが動作しません。ナビゲーションメニューをクリックしたときにはIframe.jsは動作しています。

これはInternet Explorerの仕様なのでしょうか。それとも、Iframe.jsを修正して対処できるのでしょうか?

環境

  • ブラウザ:(各最新版)

Google Chrome 68.0.3440.106
Firefox Quantum 61.0.2
Internet Explorer 11.165.17134.0
Microsoft Edge 42.17134.1.0

  • OS:Windows 10 Home(バージョン 1803)
  • jQuery: 2.2.4

コード

index.html

HTML

1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="utf-8"> 5 <link rel="stylesheet" type="text/css" href="css/main.css"> 6 <title>ウェブサイト</title> 7</head> 8<body> 9 <!--ナビゲーションメニュー--> 10 <nav id="menu"> 11 <ul> 12 <li id="firstmenu" data="top">Top</li> 13 <li data="page1">ページ1</li> 14 <li id="lastmenu" data="page2">ページ2</li> 15 </ul> 16 </nav> 17 18 <!--インラインフレーム--> 19 <div id="main"> 20 <iframe src="top.html" id="parentframe" class="frame"></iframe> 21 </div> 22 23<script type="text/javascript" src="javascript/jquery-2.2.4.min.js"></script> 24<script type="text/javascript" src="javascript/Iframe.js"></script> 25</body> 26</html>

Iframe.js

Javascript

1// 前半 2$("li").click(function() { 3 id = $(this).attr("data"); 4 console.log(id); 5 $("#parentframe").attr("src",id+".html"); 6}); 7 8// 後半 9$("#parentframe").load(function(){ 10 var vScr = $(window).scrollTop(); 11 var contentDocument = this.contentDocument || this.contentWindow.document; 12 $(this).height(0); 13 var frameHeight = contentDocument.documentElement.scrollHeight; 14 $('.frame').css("height", frameHeight + 20); 15 console.log(frameHeight); 16 $(window).scrollTop(vScr); 17});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

再度テストする中で、自己解決しました。

Internet Explorerでのみ、index.htmlをロードしたときにIframe.jsが動作しません。ナビゲーションメニューをクリックしたときにはIframe.jsは動作しています。

→Internet Explorerで、index.htmlローカル環境でロードした時にのみ発生する現象でした。
サーバーにアップロードしてテストすると、この現象は発生しませんでした。

大変お騒がせいたしました。申し訳ありません。

投稿2018/08/12 09:01

code_ugoite

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問