javascript - Trigger click on iframe -
i'm aware of same-origin policy... getting out of way.
anyway, have slideshow (slide.js) has embedded videos in it. when user clicks video, want slideshow pause. events inside iframe not trigger, i'm trying work around that. right have partial solution. detect blur
event on window
, if newly focused element iframe
pause slideshow:
$(window).blur(function(event){ console.log(event.target); if($('iframe').is(':focus')){ //clicked inside iframe console.log('test'); } console.log('document.activeelement is:'); console.log(document.activeelement); console.log('\n'); });
after loading page in console:
document.activeelement is: body
now part confuses me. click event fires iframe
focus event when click somewhere other iframe
first. is, after loading page, if directly click iframe, console not log test. if click either outside frame, or tab in browser, or anywhere else, blur
event trigger. after if click iframe, test in console:
after loading page, click different tab go original tab:
window {top: window, window: window, location: location, external: object, chrome: object…} document.activeelement is: <body class="full">...</body>
then click iframe:
window {top: window, window: window, location: location, external: object, chrome: object…} test document.activeelement is: <iframe>...</iframe>
why???
i put before everything, , didn't help:
$(window).focus();
however, works if this:
$('input').focus();
if input focused, can click iframe , trigger event without having click else beforehand.
help me, you're hope...
edit:
actually, using native window.focus()
seems work me :
how appending element set focus :
$('<input>', {type: 'text', style: 'top: -10000px; position: absolute', autofocus:true} ).appendto('body') .focus(); // make sure
if can, add input element autofocus directly markup, way blur event triggered on first click.
Comments
Post a Comment