2016-09-23 30 views
1

私は最近、デスクトップ通知の作成方法に関するYouTubeのチュートリアルを見ました。それは通知として機能させることをお勧めします。たとえば、30分ごとに特定のリマインダーを(デスクトップ通知として)表示したいとします。このリマインダーは、トリガーボタンがクリックされたときにのみトリガーされます。問題は、以下のコードでは、setintervalメソッドが1回しか実行されないようです。私はクリックイベントを含まないとうまくいくようですが、クリックイベントを追加するとすぐにそれは繰り返されません。助言がありますか?ここでSetIntervalメソッドはonlickイベントで一度だけ実行されます

は、私が持っているものの抜粋です:

<a href="#" id="trigger" onclick="notifyme()">Trigger</a> 

    <script type="text/javascript"> 

     var myVar;   
     function showalert(){ 
       var notify; 
       notify = new Notification('Reminder!',{ 
         body:'How are you?' 
        }); 
        window.location = '?message=' + this.tag; 
       } 
    function notifyme() { 
     myVar = setInterval(showalert, 5000); 
} 

答えて

1

あなたが行window.location = '?message=' + this.tag;ブラウザをリダイレクトするので、ページのリロードは、あなたが再び間隔を開始するためのアンカーをクリックする必要があるときには、一度だけ動作しますあなたは、一般的に許可を求める必要はあり

<a href="#" id="trigger" onclick="notifyme()">Trigger</a> 

<script type="text/javascript"> 
    var myVar; 

    function showalert() { 
    var notify; 
    notify = new Notification('Reminder!', { 
     body: 'How are you?' 
    }); 

    } 

    function notifyme() { 
    myVar = setInterval(showalert, 5000); 
} 

注通知

function showalert() { 
 
    var notify; 
 
    notify = new Notification('Reminder!', { 
 
    body: 'How are you?' 
 
    }); 
 
} 
 

 
function notifyme() { 
 
    if (Notification.permission === "granted") { 
 
    var myVar = setInterval(showalert, 1000); 
 
    } else { 
 
    Notification.requestPermission(function(permission) { 
 
     if (permission === "granted") { 
 
     var myVar = setInterval(showalert, 1000); 
 
     } 
 
    }); 
 
    } 
 
}
<a href="#" id="trigger" onclick="notifyme()">Trigger</a>
を表示します

関連する問題