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

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

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

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

ポップアップ

一般的に、ポップアップは、ウィンドウやアプリケーションに上に浮かぶUIエレメントを指します。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

全画面表示設定の仕方

Ito_Kazuki_
Ito_Kazuki_

総合スコア124

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

ポップアップ

一般的に、ポップアップは、ウィンドウやアプリケーションに上に浮かぶUIエレメントを指します。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1回答

0グッド

4クリップ

912閲覧

投稿2020/12/01 10:04

前提・実現したいこと

オンライン模試などでよく使用される、他のタブを利用しながらの利用を禁止するために、
強制的に全画面表示にする方法ってどのように組めばいいのでしょうか。

具体的には、

ページを開いた瞬間に全画面表示になる ↓ ユーザーによって全画面表示を解除された場合は 無効化できないポップアップを表示して表示されているページを見れなくする (あるいはページに対してスクロールなどの操作をできなくする)

該当のソースコード

javascript

1 document.querySelector("#btn-open").addEventListener("click", ()=>{ 2 if ( screenfull.enabled ) { 3 const element = document.querySelector("#photo"); 4 screenfull.request(element); 5 } 6 else{ 7 alert("フルスクリーン未対応ブラウザです。"); 8 } 9 });

試したこと

上記のコードでボタンを押す必要がありますが、全画面表示にできることはわかりました。
しかし、これを自動化し、さらに解除されたときにポップアップを表示させるにはどうしたらいいのでしょうか。

補足情報

利用環境はChromeを考えていますが、広く一般的に使えるようにしたいです。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

4

ベストアンサー

結構重要なはなし

ブラウザによってはブロックされてしまうかもしれません。というかブロックされます。(利用者の使用等を制限することはwebプログラマーとしてやってはいけないことの一つです。)
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11162385786
こちらに書いてあるように

セキュリティーの問題で、ユーザー操作でないプログラムによるフルスクリーンモードは、禁止されています。

とか
https://stackoverflow.com/questions/19355370/how-to-open-a-web-page-automatically-in-full-screen-mode

Note that for (Chrome) security reasons it cannot be called or executed automatically, there must be an interaction from the user first. (Such as button click, keydown/keypress etc.)

ということなので設定で許可しなくては動きません。

本題

それでも自分はやりたいんだ!やらなくちゃしょうがないんだという場合はどうぞ。

javascript

1 window.onload = function(){ 2 if ( screenfull.enabled ) { 3 const element = document.querySelector("#photo"); 4 screenfull.request(element); 5 } 6 else{ 7 alert("フルスクリーン未対応ブラウザです。"); 8 } 9 }); 10 11document.addEventListener('fullscreenchange', function(event){ 12 if (!document.fullscreenElement) { 13 alert("フルスクリーンが終わりました"); 14 } 15});

window.onloadで読み込みが終了した時にフルスクリーンにして、document.fullscreenchangeイベントとdocument.fullscreenElementの組み合わせでフルスクリーン解除を検知します。

fullscreenchangeについてはこちら。
https://developer.mozilla.org/ja/docs/Web/API/Document/fullscreenchange_event

追記

自分はこんな設定オンにしたくないので確認していません。

投稿2020/12/01 10:43

編集2020/12/02 05:46
kumitatepazuru_

総合スコア232

AkitoshiManabe, miyabi_takatsuk, Jon_do, nekora👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

ポップアップ

一般的に、ポップアップは、ウィンドウやアプリケーションに上に浮かぶUIエレメントを指します。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。