3

javascriptでconfirm()と同じように動作するものを書きたいのですが、ダイアログボックスをスキンできるように自分で書きたいです。基本的に、ユーザーが応答するまでJavaScriptスレッドを強制的に待機させてから、trueまたはfalseを返す方法を考えるのに苦労しています。

4

5 に答える 5

5

私があなたなら、人気のある JavaScript ライブラリの 1 つに注目します。ほとんどの場合、ある種のモーダル ダイアログが含まれています。

私が見つけた JQuery のカップルは、jqModalSimpleModalです。

モーダル ダイアログを作成するときは、イベントをボタンに関連付ける必要があるため、次のようにします。

function askUserYesOrNo() {
  var myDialog = $('<div class="mydialog"><p>Yes or No?</p><input type="button" id="yes" value="Yes"/><input type="button" id="no" value="No"/></div>');
  $("#yes").click(handleYes);
  $("#no").click(handleNo);
  myDialog.modal(); //This would have to be replaced by whatever syntax the modal framework uses
}

function handleYes() {
  //handle yes...
}

function handleNo() {
  //handle no...
}
于 2008-10-09T19:03:34.350 に答える
3

自分でフレームワークを構築しようとすると、さまざまなクロスブラウザーの問題が発生するため、フレームワークを使用する必要があります。

モーダル ダイアログを定義できる jQuery フレームワークのプラグインであるjqModalを使用して良い結果が得られましたが、これが唯一のオプションではありません。いくつかの代替手段として、 Google jquery modalまたはyui modalを試してください。

于 2008-10-09T19:10:08.970 に答える
1

Mootools の場合はmoo.rd の Custom.ConfirmWindoo.Confirmが参考になります。

于 2008-10-10T01:06:24.603 に答える
0

必要最小限の YUI モーダル ライトボックス ( example ):

http://bravo9.com/journal/a-simple-lightbox-modal-dialog-with-yui-c5b048f5-b278-46d1-9a7e-0d3035094f52/

于 2008-10-10T00:37:19.763 に答える
0

ウィンドウを使用できます。showModalDialog ( mozilla ) ですが、これは Internet Explorer によって導入された非標準の機能です。現在、Firefox 3 と Safari でもサポートされています (どのバージョンかはわかりませんが、少なくとも 3.1 以降で、iPhone ではサポートされていません)。

于 2008-10-09T19:51:45.003 に答える