Запустите событие JavaScript с пользовательским параметром и перехватите его с помощью jQuery
В настоящее время я запускаю пользовательское событие JavaScript, подобное этому, с самой страницы в документ iframe:
// Create iframe
var iframe = document.createElement('iframe');
iframe.setAttribute('src', 'URL to load');
document.body.appendChild(iframe);
// Event itself
var event = document.createEvent('HTMLEvents');
event.custom = 'example param';
event.initEvent('custom', false, true);
iframe.contentWindow.window.document.dispatchEvent(event);
Теперь на этой странице iframe у меня есть jQuery. Как я могу поймать событие (которое работает), а также (важно) получить пользовательский (объект) параметр?
Поймать это так:
$(document).on('custom', function(e, param) {
alert(e); // [object Object] -> normal jQuery event data without any special data
alert(e.custom); // undefined
alert(param); // undefined
});
Как я могу получить данные пользовательских параметров, не добавляя jQuery на саму страницу, которая содержит iframe?
1 ответ
Решение
jQuery переносит оригинальное событие DOM. Исходное событие должно быть доступно через originalEvent
свойство события jQuery.
e.originalEvent.custom
следует оценить в соответствии с вашим значением, в этом случае 'example param'
,