- ベストアンサー
WEB上で閲覧者のキーボードの特定の部分と同じ機能になるボタンは作れますか?
HPのページから、ボタンクリックで閲覧者がPCのキーボードのF11を押した同じ状況に出来るボタンの作成は可能でしょうか? つまりこの場合はワイド画面になると言う事ですが...。 次のページへのリンクでフルスクリーンにするのではなく、今開いているページのままでF11を押した状況と同じようになって欲しいのです。 win2000以前では alt+f4 を押さないと元に戻らないフルスクリーンのスクリプトは分かりますが、その場合でも、今度は元に戻す alt+f4 と同じ機能のボタンをページのどこかに表示させておきたいのです。 その方が閲覧者に便利だと思うからです。 みなさまどうかよろしくおお願い致します。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
No1,No5の者です。 F11キーはあきらめて、画面を最大化したり戻すだけなら、 単純に、 <head> ---- <script type="text/javascript"> <!-- var orgw,orgh,orgx,orgy window.onload = function () { orgw=window.outerWidth; orgh=window.outerHeight; orgx=window.screenX; orgy=window.screenY; } function saidai(){ maxw=screen.width; maxh=screen.height; orgw=window.outerWidth; orgh=window.outerHeight; orgx=window.screenX; orgy=window.screenY; window.resizeTo(maxw,maxh); window.moveTo(0,0) } function modosu(){ window.resizeTo(orgw,orgh); window.moveTo(orgx,orgy) } // --> </script> </head> <body> <input type="button" onclick="saidai();" value="最大化"> <input type="button" onclick="modosu();" value="戻す"> </body> </html> です。 が、メニューバー、ツールバー、ロケーションバー、パーソナルバー達は 消せませんね。それにIEだとどうもうまくいかない。(サイズに制限があるみたいです。) こうなると、やはりwindows.open()で新しいwindowsを開くしか手が無いかも。windows.open()する時 urlは自ページのurlwindows名に"_self"を指定してバー達を非表示で生成してやれば、全画面に切り 替わるだろうが、元に戻すのボタンが面倒そうです。最大化前の状態を全部保持しておかなければならないし..... やはり、ブラウザーの標準のボタンとか、F11キーを押すのが一番 ユーザーの使い勝手がいいと思うのですが、違いますか? それから,再度言いますがalt+F4は「サイズを戻す」のじゃなくて「閉じる」です。 windows.open()で別途の最大化されたwindowが表示されて、 見えなくなっているopen元のページが、最大化されたページが閉じられる 事によって再び見えるだけです。サイズが戻っているのではないです。
その他の回答 (5)
- yyr446
- ベストアンサー率65% (870/1330)
No1 yyr446です。 javascriptでF11押下のイベント生成するのまでは出来るのですが 動作しないですね。イベントをどこに伝播させればよいのかが わかれば何とかなりそうな? それとも無理なのか・・・・ <script type="text/javascript" charset="utf-8"> function f11(){ var e = document.createEvent("KeyboardEvent"); e.initKeyEvent("keydown", true, true, null, false, false, false, false, 122, 0); window.dispatchEvent(e); document.getElementById("hoge").dispatchEvent(e); } </script> </head> <body> <div id="hoge" onclick="f11();">最大化</div> <input type="text" id="hoge" onkeydown="javascript:alert('押した');"/> 上記ソースでF11を押したイベントは確認できたのですが、 フルスクリーンにはなりませんでした。 </body>
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
訂正。 document.onkeypressではなく、window.onkeypressまたはdocument.body.onkeypressの方がいいと思います。
お礼
ありがとうございます。 その後、それについて調べました。 勉強になりました。
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
document.onkeypressで押されたキーを判断すればキー操作でいろんな処理を実行できますが、 どのキーがどの操作に割り当てられているかはブラウザ、およびパソコンの設定で違います。 キー操作をカスタマイズできるブラウザもありますので、 どのキーがどの操作に割り当てられているかは制作者には判断できません。 ブラウザの設定、パソコンの設定に重複したキーを指定すると、逆に不便になりますので、 この操作方法の作成は慎重にすべきだと思います。 たとえばF11で画像の変更をするスクリプトを作ると、 F11を「履歴を戻る」に割り当てている場合、 画像を変更するためにF11を押したとしても、履歴を戻ってしまいますから、JavaScriptが機能しなくなります。 この場合はF11キーを押さずにマウス操作で画像を変更すればいいだけですが、 「F11キーを押さなければ先に進めない」ように作ってあると、その先に進めなくなります。 ウインドウサイズの変更は得てして嫌われがちですので、私はおすすめはしませんが、 window.widthなどを変更すれば変更できる「かも」しれません。 私はHTMLのaccesskey属性を推奨します。 <kbd>はaccesskeyが指定されていることを教えるための目印として使用しています。 <a onclick="myFunc()" accesskey="m" style="cursor:pointer">myFuncを実行</a><kbd title="accesskey">[m]</kbd>
- Chary_spy
- ベストアンサー率40% (75/183)
>目的が今ひとつよくわからないのですが 最近おおいんですよね。このサイトの書き込みを増やすだけが目的のような気がしますが? たぶんこの質問した方は、プログラミングをあまり、経験が無い方かと思います。学校で教わる勉強と違って、解決方法は1つきりでありません。柔軟に、切り替える事が必要かと。 いくつかやり方があります。まず単純に、あなたの示したURLを同じやり方をすれば言い訳です。拡大したのだから、元に戻せばいいわけです。ウインドウサイズを大きくする前に、サイズを変数に格納しておけば言い訳です。それで、ボタンを押したとき、そのサイズにウインドウをリサイズすればすみます。これって、プログラミングの基本的なところです。その時ポジション(X,Y)も記録しておけば、元にもどりますよね。ちょっとひねるだけでいいわけだから、元に戻すサンプルがそこに載っていないと思います。 他に、本当にキーシュミレーションしてしまうやり方。JavaScriptを使わずに、JScriptやVBScript、Flash, ActiveXを使えば、キーを実行してくれます。
お礼
> 最近おおいんですよね。このサイトの書き込みを増やすだけが目的のような気がしますが? ??? 何の為のそんな面倒なことするのですか? 私は暇人じゃないので、そんな事はしたくはありませんな。子供じゃあるまいし。 > たぶんこの質問した方は、プログラミングをあまり、経験が無い方かと思います。 もちろんそうですが、だから質問してるのです。このサイトではそう言う人間も質問する事を許されていると思うのですが? と、いいますか、なぜ憎まれ口をいちいち書くのか理解出来ないですよ。 こういう一部の人のために、プログラマーという人達が人とのコミニュケーションが出来ない人達と言われてしまうのだと思います。 誠実な回答者様達の為にも嫌味な表現は控えて下さるようお願いします。 で、要するにF11 keyの様なブラウザの広がり方は javascript で出来ないんですね? ありがとうございました。
- yyr446
- ベストアンサー率65% (870/1330)
目的が今ひとつよくわからないのですが.... たいていのブラウザーには、マウスでクリックする「最大化」と「元に戻 す」「最小化」「閉じる」のボタンは付いていると思うのですが、 何故それをページ内に作らなければならないのですか? 別に、閲覧者に便利だとは全く思えません。 それに「alt+F4」は「元に戻す」じゃなくて、「閉じる:ブラウザー終了」だと思うのですが....
補足
以前も別件でのご回答ありがとうございます。 以下は参考です http://www.nmt.ne.jp/~mamiko/scripts/tip/window/fullscreen.html > 目的が今ひとつよくわからないのですが... 今回の目的はWEB上でF11keyと同じ環境にしたいと言う事ですが、それを知っていれば別に応用も利くと考えています。何が訊きたいかはタイトル通りです。 > たいていのブラウザーには、マウスでクリックする「最大化」と「元に戻す」「最小化」「閉じる」のボタンは付いていると思うのですが、 F11を押してもそちらのosではサイズは変わらないのですか? win2000では画面が広がるのですが。 > 別に、閲覧者に便利だとは全く思えません。 例えば漫画などが閲覧出来るサイトの場合、時々、漫画の下のコマの方がブラウザから切れていて、スクロールで移動しないとその部分が読めないサイトがよくあります(これは結構面倒なものです)。その場合、私はF11を押して全体が読めるようにします。しかしそれを知らない人には、ボタンがあった方が便利です。 どちらにせよ私が普段ネットを使う際、その方が便利だと思っているから自分はそのようにしたいと考えているのです。 > それに「alt+F4」は「元に戻す」じゃなくて、「閉じる:ブラウザー終了」だと思うのですが.... win2000以前のIEではまったく縁なしの完全フルスクリーンになります。 元に戻すにはalt+f4をする必要があります。 また、なぜ前パージや次ページへのリンクはダメかについては説明は控えさせて頂きたいと思います。
お礼
ありがとうございます。 仰る通りやはりF11を押してもらうようにしようと思います。 お時間を取らせてしまい恐縮です。 alt+F4 の件、分かりました。他のサイトでも「元に戻すには」と書いてあったのでそうなのだと思っていました。 別に開くなら、参考サイトのスクリプトも同様にクローズボタンを作れば済みますよね。
補足
海の向こうでも同じ事を悩んでいる人がいるもんですね。 以下がいちばん近い動きでしたが、web上では作動しませんでした。 <script type="text/javascript"> function max() { var obj = new ActiveXObject("Wscript.shell"); obj.SendKeys("{f11}"); } </script> <body onload="javascript:max()"> どうやらできないというのが結論みたいです。