トップ 差分 一覧 カテゴリ ソース 検索 ヘルプ RSS ログイン

Script/WebBrowser

INDEX

WebBrowser JavaScript

HTMLなどに仕掛けて、ユーザの入力補助やUI制御などをするJavaScript関係。ブックマークレット系は、Script/Bookmarklet を参照。

フォームの入力値チェック

 鷹の島

フォームの入力エラーを吹き出しで教えてくれる JavaScript

 validate.js

フォームの入力値チェックをしてくれるJavaScriptのライブラリ

 TMT Validator

 fValidator

カレンダー入力

 JKL.Calendar

ポップアップするカレンダー表示クラス

MOMさんによる改良版

安達さんが自動判定機能を追加したもの

 protocalendar.js

シンプルな日時選択ライブラリ protocalendar.js v1.1.3 を公開しました

フレーム内リンク対策

ブラウザの JaveScript を無効化されていれば効かないですし、フレーム名チェックやロケーションのチェックは回避策もある。なので、それぞれのページ内にトップページへのリンクや著作表示を入れておくとよい。

 強制的にフレーム破棄

ページが表示されたとき、フレームを破棄してトップページとして表示する。このスクリプトは、それ自身がフレーム内ではない単独ページで使える。

HTMLファイルに次の JaveScript を入れます。self.location.href のかわりに this.location.href でもOK。

<SCRIPT language="JavaScript">
<!--
if(self !=top){
    top.location.href=self.location.href;
}
// -->
</SCRIPT>

 フレーム名チェック

フレームを組むときにはかならずそれぞれのフレーム名をつけます。この名前は window.name で取得できるので、これを利用しフレーム名をチェックする。

例えば、フレームに 'myframe' という名前をつけて、そこに表示するHTMLファイルに次の JaveScript を入れます。

<SCRIPT language="JavaScript">
<!--
if(window.name !='myframe'){
    top.location.href='http://www.ushikai.com/';
}
// -->
</SCRIPT>

 親フレームのロケーションをチェック

親フレームのロケーション(URL)に想定するドメインやパスかをチェックし、想定外の場合に、指定したURLに強制的に変更する。

例えば、そのページとその親ページが mydir ディレクトリにある時、親フレームのロケーションも 'mydir' という文字列が含まれます。これを利用して、それ以外の親から表示された場合に、ページを飛ばす用にします。'mydir' のかわりに 'ushikai.com' などのドメイン名などでもOK。

mydir ディレクトリある親ページから表示するHTMLファイルに次の JaveScript を入れます。

<SCRIPT language="JavaScript">
<!--
if((parent.location.href.indexOf('mydir')) < 0){
    top.location.href='http://www.ushikai.com/';
}
// -->
</SCRIPT>

コンテキストメニュー(右クリックメニュー)の禁止

ブラウザでコンテキストメニュー(または、右クリックメニュー)の表示を禁止する方法。スクリプトのイベントハンドラで禁止するので、JavaScript を無効にした場合は効かなくなる。

 タグの属性でイベントを無効化する

以下のように、BODYタグの oncontextmenu 属性で、コンテキストメニューのイベントハンドラでイベントを無効化します。また、画像のみに対して無効化する場合は、BODYタグではなく、IMGタグに記載する。

<body oncontextmenu="return false">
<body oncontextmenu="alert('右クリック禁止');return false">

どちらも同じでメッセージボックスを表示するかが違う、どちらか一方でよい。

 スクリプトでイベントハンドラを設定する

クリックイベントのイベントハンドラを作成し設定する。ファンクション中で右クリックだった場合にイベントをキャンセルする。

以下の内容を 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タグの中に以下を追加します。(パスは適当に合わせる)

<script src="protct.js" type="text/javascript"></script>

最終更新時間:2008年11月19日 21時52分00秒 指摘や意見などあればSandBoxのBBSへ。