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

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

詳細はこちら
Chrome

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

ポップアップ

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

JavaScript

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

HTML

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

Q&A

解決済

1回答

1920閲覧

全画面表示設定の仕方

Ito_Kazuki_

総合スコア124

Chrome

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

ポップアップ

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

JavaScript

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

HTML

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

0グッド

4クリップ

投稿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を考えていますが、広く一般的に使えるようにしたいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

結構重要なはなし

ブラウザによってはブロックされてしまうかもしれません。というかブロックされます。(利用者の使用等を制限することは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
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問