!!!WebBrowser JavaScript {{category WebBrowser,JavaScript,nolink}}HTMLなどに仕掛けて、ユーザの入力補助やUI制御などをするJavaScript関係。ブックマークレット系は、[[Script/Bookmarklet]] を参照。 !!!フォームの入力値チェック !!鷹の島 フォームの入力エラーを吹き出しで教えてくれる JavaScript *http://espion.just-size.jp/archives/07/035231221.html *ライセンス:パブリックドメイン !!validate.js フォームの入力値チェックをしてくれるJavaScriptのライブラリ *http://www.mutationevent.com/projects/validate.js/index.php *ライセンス:GPL2.0 !!TMT Validator *http://www.massimocorner.com/validator/ !!fValidator *http://zendold.lojcomm.com.br/fvalidator/ *ライセンス:The MIT License !!!カレンダー入力 !!JKL.Calendar ポップアップするカレンダー表示クラス *http://www.kawa.net/works/js/jkl/calender.html *ライセンス:修正BSDライセンス !MOMさんによる改良版 *http://blogs.yahoo.co.jp/ti_tap_tgm/44254858.html *ライセンス:修正BSDライセンス !安達さんが自動判定機能を追加したもの *http://blog.adachi-shihosyoshi.com/archives/50727775.html !!protocalendar.js シンプルな日時選択ライブラリ protocalendar.js v1.1.3 を公開しました *http://labs.spookies.co.jp/2008/02/12/protocalendar-js-1-1-3-release/ *ライセンス:MIT-LICENSE !!!フレーム内リンク対策 ブラウザの JaveScript を無効化されていれば効かないですし、フレーム名チェックやロケーションのチェックは回避策もある。なので、それぞれのページ内にトップページへのリンクや著作表示を入れておくとよい。 *[牛飼いとアイコンの部屋|http://www.ushikai.com/] - HTML Memo - [リンクの話|http://www.ushikai.com/web/web08.htm] より !!強制的にフレーム破棄 ページが表示されたとき、フレームを破棄してトップページとして表示する。このスクリプトは、それ自身がフレーム内ではない単独ページで使える。 HTMLファイルに次の JaveScript を入れます。self.location.href のかわりに this.location.href でもOK。 !!フレーム名チェック フレームを組むときにはかならずそれぞれのフレーム名をつけます。この名前は window.name で取得できるので、これを利用しフレーム名をチェックする。 例えば、フレームに 'myframe' という名前をつけて、そこに表示するHTMLファイルに次の JaveScript を入れます。 !!親フレームのロケーションをチェック 親フレームのロケーション(URL)に想定するドメインやパスかをチェックし、想定外の場合に、指定したURLに強制的に変更する。 例えば、そのページとその親ページが mydir ディレクトリにある時、親フレームのロケーションも 'mydir' という文字列が含まれます。これを利用して、それ以外の親から表示された場合に、ページを飛ばす用にします。'mydir' のかわりに 'ushikai.com' などのドメイン名などでもOK。 mydir ディレクトリある親ページから表示するHTMLファイルに次の JaveScript を入れます。 !!!コンテキストメニュー(右クリックメニュー)の禁止 ブラウザでコンテキストメニュー(または、右クリックメニュー)の表示を禁止する方法。スクリプトのイベントハンドラで禁止するので、JavaScript を無効にした場合は効かなくなる。 !!タグの属性でイベントを無効化する 以下のように、BODYタグの oncontextmenu 属性で、コンテキストメニューのイベントハンドラでイベントを無効化します。また、画像のみに対して無効化する場合は、BODYタグではなく、IMGタグに記載する。
どちらも同じでメッセージボックスを表示するかが違う、どちらか一方でよい。 !!スクリプトでイベントハンドラを設定する クリックイベントのイベントハンドラを作成し設定する。ファンクション中で右クリックだった場合にイベントをキャンセルする。 以下の内容を protct.js と言うファイルを作成する。 function killContextMenu(e) { if (document.all) { // IE if (event.button == 2) { alert("右クリック禁止!"); return(false); } } else { // NS alert(e.which); if (e.which == 3) { alert("右クリック禁止!"); return(false); } } } if (document.layers) { document.captureEvents(Event.MOUSEDOWN); document.onmousedown = killContextMenu; } else { document.onmousedown = killContextMenu; document.oncontextmenu = killContextMenu; } 禁止したいHTMLのHEADタグの中に以下を追加します。(パスは適当に合わせる)