我正在使用Chrome上的webkit通知。 方法window.webkitNotifications.requestPermission
只能從用戶操作(點擊等)中調用。在其他地方調用它將不起作用,並且不會拋出任何錯誤。真實用戶操作與編程生成的區別是什麼?
由於某些原因,我需要稍後在另一個事件上運行它,最初由真正的點擊生成。
我試圖通過產生這樣的點擊運行此方法:
var a = document.createElement('a');
a.addEventListener('click', function() {
window.webkitNotifications.requestPermission()
});
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 1, 0, 0, 0, 0,
false, false, false, false, 0, null);
a.dispatchEvent(evt);
但隨着預期的方法沒有任何效果。 這讓我想知道Chrome如何檢測用戶操作? 生成的事件與真實用戶操作生成的事件之間有什麼區別?
我也試着保留對原始點擊事件的引用,並在需要調用此方法時將其傳回,但它不起作用。
我創建了一個小提琴來說明我的問題:http://jsfiddle.net/arnaudbreton/B38yJ/1/