🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Internet Explorer

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

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

JavaScript

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

jQuery

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

Q&A

解決済

3回答

2043閲覧

IE11のみ構文エラーで、jsが全く効きません。

mariko76

総合スコア22

Internet Explorer

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

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2021/03/05 04:36

IE11のみ、jsが一切効かないのでIEの要素の検証でみたところ、以下の部分が構文エラーとなっていました。

const videosId = Array.from(videoIframes).map(item => item.id);

jsファイルの全体はこちらになります。

// Youtube const videoPlayButtons = document.querySelectorAll('.video_play'); const modalCloseButton = document.getElementById('modal_close'); const modal = document.getElementById('modal'); const videoIframes = document.querySelectorAll('.youtube_video'); let currentVideoId = null; // APIでのYouTube動画制御 function onYouTubeIframeAPIReady() { const videosId = Array.from(videoIframes).map(item => item.id); const players = videosId.map(id => { return new YT.Player(id, { videoId: id, playerVars: { loop: 0, rel: 0 } }); }); // モーダル表示&YouTube動画の自動再生 videoPlayButtons.forEach(element => { element.addEventListener('click', (event) =>{ modal.classList.add('shown'); const elementId = element.hash.replace('#', ''); event.preventDefault(); const targetVideo = players.filter(player => { return player.o.id === elementId; }); targetVideo[0].h.style.display = 'block'; targetVideo[0].unMute().playVideo(); currentVideoId = elementId; }); }); // モーダルクローズ&YouTube動画の停止 modalCloseButton.addEventListener('click', (event) => { const targetVideo = players.filter(player => { return player.o.id === currentVideoId; }); targetVideo[0].stopVideo(); document.getElementById(currentVideoId).style.display = 'none'; modal.classList.remove('shown'); }); } // ▲ここまでyoutube再生 // fadein var bodyHeight = document.body.clientHeight; var windowHeight = $(window).height(); if (bodyHeight >= windowHeight) { $(window).scroll(function () { $('.fadein').each(function () { var elemPos1 = $(this).offset().top; var scroll1 = $(window).scrollTop(); var windowHeight1 = $(window).height(); if (scroll1 > elemPos1 - windowHeight1) { $(this).addClass('scrollin'); } }); $('.fadeinimg').each(function () { var elemPos2 = $(this).offset().top; var scroll2 = $(window).scrollTop(); var windowHeight2 = $(window).height(); if (scroll2 > elemPos2 - windowHeight2) { $(this).addClass('scrollin'); } }); }); } else { $('.fadein').each(function () { $(this).addClass('scrollin'); }); $('.fadeinimg').each(function () { $(this).addClass('scrollin'); }); } // PageTop $(document).ready(function(){ $("#pagetop").hide(); $(window).on("scroll", function() { if ($(this).scrollTop() > 100) { $("#pagetop").fadeIn("fast"); } else { $("#pagetop").fadeOut("fast"); } scrollHeight = $(document).height(); scrollPosition = $(window).height() + $(window).scrollTop(); footHeight = $("footer").innerHeight(); //footerの高さ(=止めたい位置) if ( scrollHeight - scrollPosition <= footHeight ) { $("#pagetop").css({ "position":"absolute", "bottom": footHeight + -35 }); } else { $("#pagetop").css({ "position":"fixed", "bottom": "20px" }); } }); $('#pagetop').click(function () { $('body,html').animate({ scrollTop: 0 }, 400); return false; }); });

「// ▲ここまでyoutube再生」の部分までを削除するとそれ以下のfadeinなどは動くので、やはりyoutube再生の部分のコードに問題があるのかと思います。

どこがいけないのか教えていただけないでしょうか。よろしくお願いいたします。
(js初心者です)

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

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

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

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

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

m.ts10806

2021/03/05 04:41

IEは必須要件なのでしょうか。 必須である場合、かなり書き換えが発生するように見えます。
mariko76

2021/03/05 04:58

IEは必須なんです> <
m.ts10806

2021/03/05 05:07

では、大幅書き換えですね。 ご自身で組まれたのでしたらなんとかなるでしょうけど、そうではなく、あまり内容理解できてないのでしたら質問と回答という形ではおさまらないと思います。
mariko76

2021/03/05 06:10

そうなんですね、ありがとうございます。汗 書き換えたりするスキルがないので、ここは諦めて別のサイトを参考に組み直してみようと思います、ありがとうございました。
m.ts10806

2021/03/05 06:15

んー、 書いてる内容理解してないままだと、どこ参考にしてもあまり変わらないと思います。 「IE対応」という時点でかなり(あまり必要ないはずの)労力がかかります。 IEだけの機能を選ばないように気をつける必要もあります。
guest

回答3

0

Array.fromアロー関数もIE非対応ですね

投稿2021/03/05 04:42

yambejp

総合スコア116688

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

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

0

ベストアンサー

以下の部分が構文エラーとなっていました。

はい、IE11はアロー関数(=>)を認識しませんし、Array.fromも存在しません。

投稿2021/03/05 04:41

maisumakun

総合スコア145971

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

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

0

回答既出の通りなので、
IEが必須ならば、
構文を、IEでも動くよう改変するか、
Babelなどのツールを使用し、IEでも動作するようにしましょう。

投稿2021/03/05 05:41

miyabi_takatsuk

総合スコア9555

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問