Нажмите на iframe автоматически

0

У меня есть прозрачный блок поверх iframe, и когда я нажимаю на этот блок, я хочу скрыть его, и этот клик должен быть передан в iframe. В js скрипке это видео для встраивания youtube, поэтому мне нужно, чтобы он начал играть. Это не имеет никакого отношения к API-интерфейсу youtube, это там, к примеру.

HTML:

<div id="wrapper">
    <iframe width="853" height="480" src="//www.youtube.com/embed/ASO_zypdnsQ" frameborder="0" allowfullscreen></iframe>
    <div id="hideme"></div>
</div>

CSS:

#wrapper{
    position: relative;
}
#hideme{
    width: 853px;
    height: 480px;
    position: absolute;
    opacity: 0.0;
    z-index: 100;
}
iframe{
    position: absolute;
}

JS:

$(document).ready(function(){
    var button = $('#ok');
    $('#hideme').on('click', function(event){
        $(this).hide(); 
        $('iframe').trigger('click', event);
    });
    button.click(function(){
        alert('You pushed the button!');
    });
});

Вот jsfiddle: http://jsfiddle.net/ZL8ut/

  • 1
    Звучит как кликбэк ;-)
  • 0
    Да, вам действительно следует избегать наложения кликабельных элементов, как правило. Это невероятно хитрый способ использовать посетителей, и многие браузеры и плагины безопасности попытаются предотвратить его, даже если вы сможете заставить его работать в локальном тесте.
Показать ещё 1 комментарий
Теги:
iframe

2 ответа

1

Существует три способа сделать это: при нажатии кнопки вы можете использовать:

$('iframe').attr('src', $('iframe').attr('src') + '?autoplay=1');

Вот рабочий JSFiddle, основанный на вашем собственном.

Надеюсь, это то, что вы хотели.

  • 0
    Поскольку он должен перезагружать iframe, это может показаться странным для посетителя, но это гораздо более разумный и безопасный подход по сравнению с передачей события другому элементу.
  • 0
    Он на самом деле использует API проигрывателя YouTube. Я попытался уточнить в вопросе, что YouTube видео есть только для примера.
Показать ещё 1 комментарий
0

просто .trigger('click'); работает

$('#hideme').on('click', function(event){
    $(this).hide(); 
    $('iframe').trigger('click');
});
button.click(function(){
    alert('You pushed the button!');
});
//test by this
$("iframe").on("click", function(){
alert("clicked");
})

Демо-скрипт

  • 0
    Нет, это не так.
  • 0
    @DmitryMikhaylov при нажатии на ааа оповещение вызывается или нет
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню