緊急ではない情報提供のアラートにスクリプトを使用するウェブコンテンツ技術
これは、次の達成基準に関連する実装方法である:
この実装方法の目的は、メッセージ(アラート)を含むダイアログを利用者に表示することである。アラートが表示されたとき、それがフォーカスされると、利用者はそれを閉じるためにダイアログのOKボタンを押さなければならない。これらのアラートにフォーカスが移ってしまうと、特に、緊急ではない情報に使用されたとき、利用者の気が散ってしまうかもしれない。今日の名言、役に立つ小技、又は特定のイベントまでのカウントダウンなど、緊急ではない目的のアラートは、利用者がウェブページに提供された選択肢でそれらを有効にすることなしには現れないようにする。
この実装方法では、アラートを表示するかどうかの利用者の選択を保存するJavaScriptのグローバル変数に割り当てる。初期値はfalseにする。 ラッパー関数は、アラートを表示する前にこの変数の値をチェックするために作成される。alert() 関数を直接呼び出すよりもむしろ、アラートを表示するすべての呼び出しをこのラッパー関数にかけるようにする。ページの上部には、ページでのアラートの表示を利用者が有効にするためのボタンを提供する。この実装方法は訪問ベースで1回の訪問ごとに作動する。ページが読みこまれるたび、アラートは無効にされ、利用者は手動でそれらを有効にしなければならない。あるいは、コンテンツ制作者は、利用者の選択をセッションを越えて保存するためにクッキーを使用することができる。
以下のスクリプトは、利用者が「アラートを利用する」というボタンを選択するなら、10秒ごとにアラートボックスに名言を表示する。利用者は再び「アラートを利用しない」を選択することで、名言のアラートボックスを非表示にすることができる。
コード例:
<script type="text/javascript">
var bDoAlerts = false; // アラートを表示するかどうか指定するグローバル変数
/* アラートを有効/無効にする関数。
* param ブーリアン型 bOn - trueでアラートを有効、falseで無効。
*/
function modifyAlerts(isEnabled) {
bDoAlerts = isEnabled;
}
/* アラート表示のラッパー関数。bDoAlertsの値をチェックし
* bDoAlertsがtrueのときに alert() 関数を呼び出すだけ。
*/
function doAlert(aMessage) {
if (bDoAlerts) {
alert(aMessage);
}
}
// 例 - 名言を表示するループ。
var gCounter = -1; // カウンタを保存するグローバル変数
// quotes変数は名言のリストで初期化される
var quotes = new Array("quote 1", "quote 2", "quote 3", "quote 4", "quote 5");
function showQuotes() {
if (++gCounter >= quotes.length) {★「>」は「>」ではないでしょうか?★
gCounter = 0;
}
doAlert(quotes[gCounter]);
setTimeout("showQuotes();", 10000);
}
showQuotes();
</script>
ページの本文内には、アラートを有効にしたり無効する方法を含める。以下はひとつの例である:
コード例:
<body>
<p>アラートボックスを使用した名言の表示を有効にするには、以下のボタンを押してください。<br />
<button id="enableBtn" type="button" onclick="modifyAlerts(true);">
アラートを利用する</button><br />
<button id="disableBtn" type="button" onclick="modifyAlerts(false);">
アラートを利用しない</button></p>
このコードを実装したサンプル: アラートの実装例
JavaScriptを使用した緊急ではないアラートをサポートするウェブページにおいて:
ウェブページを読み込んだ際、緊急ではないアラートが表示されない。
緊急ではないアラートを有効にするメカニズムがある。
緊急ではないアラートを有効にすると、アラートが表示される。
上記の全てを満たしている。
注意: この実装方法が「達成基準を満たすことのできる実装方法」の一つである場合、このチェックポイントや判定基準を満たしていなければ、それはこの実装方法が正しく用いられていないことを意味するが、必ずしも達成基準を満たしていないことにはならない。場合によっては、別の実装方法によってその達成基準が満たされていることもありうる。
日本語訳における注記:
この文書の正式版は、W3Cサイトで公開されている英語の文書であり、この日本語訳には誤訳が含まれていることもありえます。なお、文中にある「日本語訳における注記」は、W3Cの原文にはないものであり、日本語訳監修者が追記したものです。