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

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

新規登録して質問してみよう
ただいま回答率
85.46%
JavaScript

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

Q&A

解決済

2回答

1956閲覧

理解できないscriptの記述があります

dreamers

総合スコア61

JavaScript

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

0グッド

0クリップ

投稿2021/05/11 04:41

編集2021/05/11 08:07

#問題
他の方が書いたプログラムを読んでいますが、理解できない記述があります。

<head>に記述されている下記二つのscriptです。

script

1 <script> 2 window.console = window.console || function (t) { }; // select 3 </script>

script

1 <script> 2 if (document.location.search.match(/type=embed/gi)) { // select 3 window.parent.postMessage("resize", "*"); 4 } 5 </script> 6

#試したこと

ネットで調べましたが、分かりませんでした。
(①は、開発者用がログを調べるためのもの?、②は、全く不明)
#アドバイスのお願い

上記ふたつのscriptは何を行っているのか、
削除した場合、障害が生じるのか、

について、アドバイス頂きたく、宜しくお願い致します。

#追記(質問プログラムの前後関係を追記記載)
質問プログラムの前後を追記記載させていただきます。

html

1<!DOCTYPE html> 2 3<!--下記部分は「Google Analytics オプトアウト アドオン」が挿入。_gaUserPrefs.ioo が「true」の場合、トラッキングの計測(アクセス数)がされない、という仕様。 4--> 5<script type="text/javascript">window["_gaUserPrefs"] = { ioo: function () { return true; } } 6</script> 7 8 9<head> 10 11 <!-- Required meta tags --> 12 <meta charset="utf-8"> 13 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 14 15 <!-- Bootstrap CSS --> 16 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" 17 integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> 18 19 20 21 <title>Creating a Store Locator on Google Maps</title> 22 <style> 23 /* Always set the map height explicitly to define the size of the div 24 * element that contains the map. */ 25 #map { 26 height: 100%; 27 } 28 29 /* Optional: Makes the sample page fill the window. */ 30 html, 31 body { 32 height: 100%; 33 margin: 0; 34 padding: 0; 35 } 36 </style> 37 38 <style> 39 .iframeWrap { 40 position: relative; 41 padding-bottom: 100%; 42 height: 0; 43 width: 100%; 44 overflow: auto; 45 allowfullscreen 46 } 47 48 .iframeWrap iframe { 49 position: absolute; 50 top: 0; 51 left: 0; 52 width: 100% !important; 53 height: 100% !important; 54 } 55 </style> 56 57 <script> 58 window.console = window.console || function (t) { }; // select 59 </script> 60 <script> 61 if (document.location.search.match(/type=embed/gi)) { // select 62 window.parent.postMessage("resize", "*"); 63 } 64 </script> 65 66</head> 67

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

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

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

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

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

Lhankor_Mhy

2021/05/11 04:46

①は想像がつきますが、②は部分だけだとなんとも言えないと思いますよ。
m.ts10806

2021/05/11 04:58

何をどう調べてわからなかったのか具体的に記載願います
K_3578

2021/05/11 05:03

なんの障害が起こるのかもなにも前後関係がないからわからんよ
dreamers

2021/05/11 07:24

皆様、ご返事、ありがとうございます。 つたない投稿で、ご迷惑をおかけしました。 他の方々の内容を踏まえて、出直します。
K_3578

2021/05/11 07:26

>質問者さん 出直す前に回答に対して何かしら反応はすべきです。
m.ts10806

2021/05/11 07:56

「他の方が」というのと前提や背景が何も書いてない時点で他者が感じることは「その書いた人に聞いたら?」です。 もう少しそのあたり丁寧に説明追記いただけますか?
dreamers

2021/05/11 08:27 編集

K_3578様、m.ts10806様、大変失礼致しました。 Lhankor_Mhy様、②の前後を、質問欄に追記記載させていただきます。 m.ts10806様、document.location.search.match(/type=embed/gi)などと、不明な記載を全文でネット検索しましたが、その通りの記載が無く、諦めかけていました。 kei344様のご紹介していただいた情報で、関数として、再度調査しようと思っています。 K_3578様、前後関係の内容を、質問欄に追記記載させていただきます。 ※自分が書いた「他の方々の内容を踏まえて、出直します。」という、表現を再度読み直すと、まるで、Lhankor_Mhy様、m.ts10806様、K_3578様、を軽視しているような大変失礼な表現になってしまったと、申し訳ない気持ちでいっぱいです。 本意は、 「Lhankor_Mhy様、K_3578様、m.ts10806様、のアドバイス、並びに、他の方々、ku__ra__ge様、kei344様、のアドバイスを踏まえて、自分の至らなかった点を再調査、再考し、出直します。」 という気持ちでした。 顔を合わせて、お話させて頂くのと違い、投稿は文章だけでの表現になるので、投稿文章は、十二分に推敲しなくてはいけない、と痛感した次第です。 このたびは、誠に申し訳ありませんでした。
Lhankor_Mhy

2021/05/11 09:00

当方は「みなさん手厳しいな」と思っていたので、気にしていません。 ②のコードを拝見する限り、iframeなどで自分が呼び出された時に何かをするスクリプトのように見えます。抜いても害はないでしょう。
dreamers

2021/05/11 22:43

Lhankor_Mhy様、ありがとうございます。
Lhankor_Mhy

2021/05/12 00:42

どういたしまして。 ですが、これは私の推測ですので、あまり信用なさらないことをおすすめします。
guest

回答2

0

window.console = window.console || function (t) { };

window.console が未定義の場合は、window.consolefunction (t) { }を代入せよ。
といった意味です。

window.consoleはブラウザ上ではグローバル変数のconsoleと同一の意味になります。
……が一般的なブラウザではグローバルのconsoleには、開発者ツール上にログなどを出力するためのオブジェクトが最初から定義されています。 ( console - Web API | MDN )
window.console がすでに定義されているなら、このコードは何も行いません。

ただIE11では開発者ツールを立ち上げていないとconsoleが未定義なので、そこにfunction (t) { }が代入されます。
結果として一般的ブラウザではconsoleconsoleオブジェクトが入っており、IE11ではconsolefunction (t) { }が入っているという状態になりますが、それで何の意味があるのか私にはわかりません。

投稿2021/05/11 05:36

ku__ra__ge

総合スコア4524

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

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

dreamers

2021/05/11 07:28 編集

ku__ra__ge様、ありがとうございます。 初心者にとって、ku__ra__ge様のような逐語訳的説明がとても分かり易く、理解できました。
guest

0

ベストアンサー

このあたりは調べましたか?もし調べたとしたら、その上で何がわからなかったかを具体的に提示してください。

【論理和 (||) - JavaScript | MDN】
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_OR#description

【Location - Web API | MDN】
https://developer.mozilla.org/ja/docs/Web/API/Location

Location.search

URL のうち、'?' とそれに続くパラメーターや "クエリー文字列" を収めた USVString です。

【window.postMessage - Web API | MDN】
https://developer.mozilla.org/ja/docs/Web/API/Window/postMessage

投稿2021/05/11 04:51

kei344

総合スコア69458

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

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

dreamers

2021/05/11 07:31

kei344様、ありがとうございます。 ご紹介頂きました情報を調べてみます。 そのうえ、不明な箇所がありましたら、宜しくお願い致します。 (私は、document.location.search.match(/type=embed/gi)など、全文で検索したので、なかなか、最適な情報にでくわしませんでした。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問