質問

特定の時間の経過後または特定のイベント(つまり、onkeypress)でjavascriptを使用してアラートボックスを自動的に閉じることができるようにしたい。私の研究から、組み込みのalert()関数ではそれが可能とは思えません。それをオーバーライドして、それが開くダイアログボックスを制御する方法はありますか?

また、非表示のdivをアラートとして表示するオーバーライドは必要ありません。実際のダイアログボックスが必要です。

役に立ちましたか?

解決

前述のように、あなたは本当にこれを行うことはできません。 UIフレームワークを使用してウィンドウ内でモーダルダイアログを実行するか、タイムアウト後に自動終了するスクリプトを使用してポップアップウィンドウを作成することができます。それぞれにマイナスの側面があります。ウィンドウが最小化されている場合、ブラウザー内のモーダルウィンドウは通知を作成せず、プログラム(タイマーベース)ポップアップが最新のブラウザーおよびポップアップブロッカーによってブロックされる可能性があります。

他のヒント

通知 API。表示する時間を制御することはできません(おそらく、何らかのOSの設定-requireInteraction trueを指定しない限り)。ユーザーが<!> quot; allow notification <!> quot;をクリックする必要があります。 (残念ながら)、しかしここにあります:

1秒後に閉じる場合:

var notification = new Notification("Hi there!", {body: "some text"});
setTimeout(function() {notification.close()}, 1000);

<!> quot; default <!> quotよりも長く表示したい場合oncloseコールバックにバインドし、別の繰り返し通知を表示して、それを置き換えることができます。

参照:このの回答に触発されましたが、その答えは最新のChromeでは機能しなくなりましたが、通知API

ダイアログボックスを制御できません。ダイアログボックスを制御できる場合は、邪魔なjavascriptコードを記述できます。 (デバッグ以外にアラートを使用することはお勧めできません)

  

アラートを閉じたい   javascriptを使用して自動的にボックス   一定時間後または   特定のイベント(onkeypressなど)

補足:Alert(<!> quot; data <!> quot;)がある場合、バックグラウンドでコードを実行し続けることはできません(AFAIK)...。ダイアログボックスはモーダルウィンドウなので、フォーカスを失うことはできません。したがって、キープレスやタイマーは実行されません...

ブートボックスプラグインを試してください。

var alert = bootbox.alert('Massage')
alert.show();
setTimeout(function(){alert.modal('hide'); }, 4000);

ポップアップウィンドウを開いて、ダイアログボックスを 呼び出すことができると思います。詳細はわかりませんが、javascriptから開いたウィンドウをプログラムで閉じることができると確信しています。これで十分ですか?

ここでの唯一の本当の選択肢は、モーダルオプションで何らかのカスタムウィジェットを使用することです。これらの機能を備えたダイアログの例については、jQuery UIをご覧ください。同様のことが、言及できるほぼすべてのJSフレームワークに存在します。

JSでプログラムで行うと、車輪を再発明するようなものになります。 jQuery プラグインを使用することをお勧めします-to-show-unobtrusive-messages.html "rel =" nofollow noreferrer "> jGrowl

ラベルを使用して、フェードインとフェードアウトの時間を設定できます 最初は非表示にし、クリック時に表示します。 $( '#div_Message')。fadeIn(500).delay(1000).fadeOut(1500);

window.setTimeout('alert("Message goes here");window.close();', 5000);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top