本ブログの更新について
本ブログの更新は2016年3月31日をもって終了しました.ありがとうございました.
posted by みっちぃ (管理人)
2013年10月02日
Javascriptにおけるマルチモニタ対応について
【サマリ】
Javascriptでマルチモニタに対応する方法を検証してみた.いま実装したいのは,
マルチモニタというからには,プライマリとセカンダリの2つのMulti Monitor環境を考えるだけではなくて,3画面以上の環境や,2画面であってもセカンダリモニタが上下にあったりするような場合も想定すべきと思う.しかしながら,現時点では複数モニタの情報を取得して活用できるような仕組みをJavascriptだけで実現することはできないようだ.
現時点において,Javascriptだけでマルチモニタにどこまで対応できるのかを検証するため簡単なJavascriptプログラムを実装してみた.上記の要件を実現することを想定して次の動作を検証した.
「Open」で子画面を作成し,「Action1」で子画面内のスクリプトを呼びScreen情報を取得する.「Action2」で子画面の最大化を試みる.「Close」で子画面を閉じる.これらのアクションは現状では手動で行うようにJavascriptを実装したが,すべて自動で行うようにすれば上記の目的は達成できるだろう.
※iframeで埋め込んでいます.コードの確認など埋め込まれたページを別途開くにはこちら.
Windows7上で試して分かったことをまとめると次の通り.
他にも良い方法があればぜひご教授を.
参考
- 例えばデュアルモニタ環境などで,Javascriptによりブラウザの親画面から子画面を開いたときにセカンダリモニタ上で開きたい.
- Firefoxでは比較的簡単に実現可能.そのほかのブラウザでは工夫が必要かも.
Javascriptでマルチモニタに対応する方法を検証してみた.いま実装したいのは,
- 親画面で子画面を開いたときにプライマリ以外のモニタ上で開きたい.
- できれば,最大化した状態で子画面を開きたい.
マルチモニタというからには,プライマリとセカンダリの2つのMulti Monitor環境を考えるだけではなくて,3画面以上の環境や,2画面であってもセカンダリモニタが上下にあったりするような場合も想定すべきと思う.しかしながら,現時点では複数モニタの情報を取得して活用できるような仕組みをJavascriptだけで実現することはできないようだ.
現時点において,Javascriptだけでマルチモニタにどこまで対応できるのかを検証するため簡単なJavascriptプログラムを実装してみた.上記の要件を実現することを想定して次の動作を検証した.
- 親ウィンドウ側で子画面を作成するときに,セカンダリモニタがプライマリモニタに対して右側であるか左側であるかをユーザに選択させる.
- Javascriptにより子画面を小さめに生成するが,その際に子画面全体がセカンダリモニタ内に収まる位置で生成されるよう,入力されたセカンダリモニタの位置に基づいて座標指定する.
- 子画面生成後,モニタの左上座標に子画面を移動する.
- モニタサイズいっぱいに子画面をリサイズする.
「Open」で子画面を作成し,「Action1」で子画面内のスクリプトを呼びScreen情報を取得する.「Action2」で子画面の最大化を試みる.「Close」で子画面を閉じる.これらのアクションは現状では手動で行うようにJavascriptを実装したが,すべて自動で行うようにすれば上記の目的は達成できるだろう.
※iframeで埋め込んでいます.コードの確認など埋め込まれたページを別途開くにはこちら.
Windows7上で試して分かったことをまとめると次の通り.
- Firefox(Ver.24.x)ではセカンダリモニタ側に子画面を生成できた.また,その状態で画面最大化も可能であった.セカンダリモニタに関わる情報も正しく取得できていた.
- Chrome(Ver.30.x)ではセカンダリモニタ側に子画面を生成できなかった.生成された子画面をセカンダリモニタ側に(手動で)移動してからであれば最大化も可能であった.セカンダリ側に移動してからであればモニタに関わる情報も正しく取得できていた.
- IE(IE10)では,セカンダリモニタがプライマリモニタの右側にある環境であれば,セカンダリモニタ側に子画面を生成できた.また,その状態で画面最大化も可能であった.ただし,セカンダリモニタに関わる情報は正確に取得できなかった.
他にも良い方法があればぜひご教授を.
参考
- デュアルモニターをJavaScriptで検出する方法は存在する?: WEBプログラミング NOW!:
http://shimax.cocolog-nifty.com/search/2012/08/javascript-35fa.html - Dual Monitors and window.open() ≪ cpradio's tidbits of information:
http://archive.cpradio.org/code/javascript/dual-monitors-and-windowopen/ - javascript - window.open() on a multi-monitor/dual-monitor system - where does window pop up? - Stack Overflow:
http://stackoverflow.com/questions/16363474/window-open-on-a-multi-monitor-dual-monitor-system-where-does-window-pop-up
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/77166776
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/77166776
この記事へのトラックバック