サイトマップ

JavaScriptコードスニペット:ダイアログ風のウインドウを表示する

titleにタイトル、htmlに内部に表示するHTML、okにOKボタンを押したときのアクション(関数)、cancelにキャンセルボタンを押したときのアクション(関数)をセットして呼び出すと、画面中央にダイアログ風の小ウインドウが表示されます。

以下のサンプルではOK・キャンセルボタンを押したときのアクションを指定せず、単にダイアログを閉じるだけとしています。

【サンプル】

(function(title, text, ok, cancel) {
    var frameColor = "#CCCCCC";
    var bgColor = "#E0E0E0";
    var frame = document.body.appendChild(document.createElement("div"));
    var head = frame.appendChild(document.createElement("div"));
    head.style.padding = "1px 3px";
    head.style.color = "black";
    head.style.backgroundColor = frameColor
    head.innerHTML = title;
    var body = frame.appendChild(document.createElement("div"));
    body.innerHTML = text;
    var foot = frame.appendChild(document.createElement("div"));
    foot.style.textAlign = "center";
    foot.style.margin = "5px 0px";
    var button = document.createElement("input");
    button.type = "button"; //IEではappendChildした後にtypeの値が設定できないようです。
    foot.appendChild(button);
    button.value = "OK";
    button.style.width = "100px";
    button.style.border  = "1px solid gray";
    button.style.marginRight = "5px";
    button.onclick = function() { if (ok) ok(); frame.parentNode.removeChild(frame); }
    button = document.createElement("input");
    button.type = "button"; //IEではappendChildした後にtypeの値が設定できないようです。
    foot.appendChild(button);
    button.value = "キャンセル";
    button.style.width = "100px";
    button.style.border  = "1px solid gray";
    button.onclick = function() { if (cancel) cancel(); frame.parentNode.removeChild(frame); }
 
    frame.style.border = "2px outset " + frameColor;
    frame.style.backgroundColor = bgColor;
    frame.style.position = "fixed";
    frame.style.left = "50%";
    frame.style.top = "50%";
    frame.style.marginLeft = (-frame.offsetWidth / 2) + "px";
    frame.style.marginTop = (-frame.offsetHeight / 2) + "px";
})('サンプルダイアログ', '<div style="font-size:32pt;text-align:center;padding:20px;">サンプルです</div>');

【サンプルの実行】クリックしてください

JavaScriptコードスニペット

 
research/1308641729.txt · 最終更新: 2011/07/08 18:03 by Kazuyuki Matsuda
特に明示されていない限り、本サイトの内容は次のライセンスに従います:Copyright(C) 2011 Shorindo, Inc. All Rights Reserved
Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki