prevent default added
This commit is contained in:
+7
-7
@@ -50,7 +50,7 @@ window.rkt_event_info = function(e, id, evt) {
|
|||||||
|
|
||||||
window.rkt_bounds = new Map();
|
window.rkt_bounds = new Map();
|
||||||
|
|
||||||
window.rkt_get_evt_handler = function(event_kind, el_id, selector, win_nr)
|
window.rkt_get_evt_handler = function(event_kind, el_id, selector, win_nr, no_prevent_default = false)
|
||||||
{
|
{
|
||||||
let handler_key = "h-" + event_kind + "-" + el_id + "-" + selector + "-" + win_nr;
|
let handler_key = "h-" + event_kind + "-" + el_id + "-" + selector + "-" + win_nr;
|
||||||
if (window.rkt_bounds.has(handler_key)) {
|
if (window.rkt_bounds.has(handler_key)) {
|
||||||
@@ -61,21 +61,21 @@ window.rkt_get_evt_handler = function(event_kind, el_id, selector, win_nr)
|
|||||||
let obj = {evt: event_kind, id: el_id, selector: selector, window: win_nr,
|
let obj = {evt: event_kind, id: el_id, selector: selector, window: win_nr,
|
||||||
js_evt: window.rkt_event_info(event_kind, el_id, e) };
|
js_evt: window.rkt_event_info(event_kind, el_id, e) };
|
||||||
window.rkt_put_evt(obj);
|
window.rkt_put_evt(obj);
|
||||||
e.preventDefault();
|
if (!no_prevent_default) { e.preventDefault(); }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
window.rkt_bounds.set(handler_key, handler);
|
window.rkt_bounds.set(handler_key, handler);
|
||||||
return handler;
|
return handler;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
window.rkt_rm_evt_handler = function(event_kind, el_id, selector, win_nr)
|
window.rkt_rm_evt_handler = function(event_kind, el_id, selector, win_nr)
|
||||||
{
|
{
|
||||||
let handler_key = "h-" + event_kind + "-" + el_id + "-" + selector + "-" + win_nr;
|
let handler_key = "h-" + event_kind + "-" + el_id + "-" + selector + "-" + win_nr;
|
||||||
window.rkt_bounds.delete(handler_key);
|
window.rkt_bounds.delete(handler_key);
|
||||||
}
|
};
|
||||||
|
|
||||||
window.rkt_bind_evt_ids = function(win_nr, selector, event_kinds) {
|
window.rkt_bind_evt_ids = function(win_nr, selector, event_kinds, no_prevent_default = false) {
|
||||||
try {
|
try {
|
||||||
let nodelist = document.querySelectorAll(selector);
|
let nodelist = document.querySelectorAll(selector);
|
||||||
if (nodelist === undefined || nodelist === null) {
|
if (nodelist === undefined || nodelist === null) {
|
||||||
@@ -92,7 +92,7 @@ window.rkt_bind_evt_ids = function(win_nr, selector, event_kinds) {
|
|||||||
let i;
|
let i;
|
||||||
for(i = 0; i < event_kinds.length; i++) {
|
for(i = 0; i < event_kinds.length; i++) {
|
||||||
let event_kind = event_kinds[i];
|
let event_kind = event_kinds[i];
|
||||||
el.addEventListener(event_kind, window.rkt_get_evt_handler(event_kind, el_id, selector, win_nr));
|
el.addEventListener(event_kind, window.rkt_get_evt_handler(event_kind, el_id, selector, win_nr, no_prevent_default));
|
||||||
}
|
}
|
||||||
let info = [ el_id, el_tag, el_type ];
|
let info = [ el_id, el_tag, el_type ];
|
||||||
ids.push(info);
|
ids.push(info);
|
||||||
@@ -152,7 +152,7 @@ window.rkt_with_selector = function(selector, func) {
|
|||||||
let c = results.length;
|
let c = results.length;
|
||||||
let r = { 'applied-to-elements': c, 'with-ids': results.filter((id) => id !== null) };
|
let r = { 'applied-to-elements': c, 'with-ids': results.filter((id) => id !== null) };
|
||||||
return r;
|
return r;
|
||||||
}
|
};
|
||||||
|
|
||||||
window.addEventListener('contextmenu', function (e) { e.preventDefault(); });
|
window.addEventListener('contextmenu', function (e) { e.preventDefault(); });
|
||||||
|
|
||||||
|
|||||||
+4
-3
@@ -705,7 +705,7 @@
|
|||||||
(rkt-webview-close (wv-win-handle wv))
|
(rkt-webview-close (wv-win-handle wv))
|
||||||
'oke))
|
'oke))
|
||||||
|
|
||||||
(define/contract (webview-bind! wv selector event)
|
(define/contract (webview-bind! wv selector event no-prevent-default)
|
||||||
(-> wv-win? (or/c symbol? string?) (or/c symbol? list-of-symbol?) list?)
|
(-> wv-win? (or/c symbol? string?) (or/c symbol? list-of-symbol?) list?)
|
||||||
(let* ((sel (if (symbol? selector)
|
(let* ((sel (if (symbol? selector)
|
||||||
(format "#~a" selector)
|
(format "#~a" selector)
|
||||||
@@ -715,8 +715,9 @@
|
|||||||
(map (λ (e) (format "'~a'" e)) event*) ", ")))
|
(map (λ (e) (format "'~a'" e)) event*) ", ")))
|
||||||
)
|
)
|
||||||
(let ((r (webview-call-js wv
|
(let ((r (webview-call-js wv
|
||||||
(format "return window.rkt_bind_evt_ids(~a, '~a', ~a)"
|
(format "return window.rkt_bind_evt_ids(~a, '~a', ~a, ~a)"
|
||||||
(wv-win-window-nr wv) sel evt))))
|
(wv-win-window-nr wv) sel evt
|
||||||
|
(if no-prevent-default 'true 'false)))))
|
||||||
(map (λ (el)
|
(map (λ (el)
|
||||||
(list (string->symbol (car el)) (cadr el) (caddr el)))
|
(list (string->symbol (car el)) (cadr el) (caddr el)))
|
||||||
r))))
|
r))))
|
||||||
|
|||||||
+4
-2
@@ -354,8 +354,10 @@
|
|||||||
(define/public (call-js js)
|
(define/public (call-js js)
|
||||||
(webview-call-js wv js))
|
(webview-call-js wv js))
|
||||||
|
|
||||||
(define/public (bind! selector events callback)
|
(define/public (bind! selector events callback . no-prevent-default)
|
||||||
(let ((items (webview-bind! wv selector events))
|
(let ((items (webview-bind! wv selector events (if (null? no-prevent-default)
|
||||||
|
#f
|
||||||
|
(car no-prevent-default))))
|
||||||
(events* (if (symbol? events) (list events) events)))
|
(events* (if (symbol? events) (list events) events)))
|
||||||
(map (λ (item)
|
(map (λ (item)
|
||||||
(let ((id (car item))
|
(let ((id (car item))
|
||||||
|
|||||||
Reference in New Issue
Block a user