Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.03.2014, 20:45
Новичок на форуме
Отправить личное сообщение для empirik Посмотреть профиль Найти все сообщения от empirik
 
Регистрация: 05.03.2014
Сообщений: 2

Передача события в iframe
Я пытаюсь расположить блок поверх iframe, чтобы тот реагировал на действия пользователя и перенаправлял события в iframe, расположенный под ним.
Это выглядит примерно так:
<html>
<head>
<style type="text/css">
#hideme{
    background: #000;
    z-index: 100;
    position: absolute;
    opacity: 0.0;
}
iframe{
    position: absolute;
    top: 100px;
    left: 350px;
}
</style>
</head>
<body>
<iframe width="853" height="480" src="//www.youtube.com/embed/9bZkp7q19f0" frameborder="0" allowfullscreen></iframe>
<div id="hideme"></div>

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
    $('iframe').load(function(){
        var iframe = $(this);

        var hideme = $('#hideme');
        hideme.width(iframe.width());
        hideme.height(iframe.height());
        hideme.css('left', iframe.position().left);
        hideme.css('top', iframe.position().top);
        
        hideme.on("click", function(event){
            iframe.trigger(event);
        });
    });
</script>
</body>
</html>

Очевидно, с помощью trigger я не могу "отправить" событие айфрейму. Может кто-нибудь пояснить, почему это не работает, и вообще, возможно ли это.
Ответить с цитированием
  #2 (permalink)  
Старый 06.03.2014, 02:22
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

empirik,
Если фрейм на ином домене, нежели главная страница, и у Вас нет возможности установки изначально своих скриптов на домене фрейма - то никак
Ответить с цитированием
  #3 (permalink)  
Старый 06.03.2014, 08:40
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

iframe - это элемент текущего документа, клик происходи по нему. В iframe существует "свой мир", то есть свой документ.
Так вот надо обратиться к документу во фрейме:
window.frames[0].document

И вот ему уже отправляй свои события
Ответить с цитированием
  #4 (permalink)  
Старый 14.03.2014, 10:52
Новичок на форуме
Отправить личное сообщение для empirik Посмотреть профиль Найти все сообщения от empirik
 
Регистрация: 05.03.2014
Сообщений: 2

В конечном счете, как я понял, действительно нет возможности обращаться к айфрейму, если он расположен на другом домене.
А что если спрятать блок #hideme и вызвать событие повторно? Я попробовал вот так, но что-то не получается.
hideme.on("click", function(event){
            $(this).hide();
            $(document).trigger('click', event);
        });
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик события click элемента, содержащего iframe meryfelow Events/DOM/Window 0 07.03.2012 18:58
Передача события в родительское окно sancho Events/DOM/Window 0 21.09.2011 23:25
Передача параметров в колбэки и дальнейшее их вешанье на события. Gremlin Общие вопросы Javascript 17 13.08.2011 08:54
Передача параметров javascript между iframe и документом. freedon Events/DOM/Window 8 05.05.2011 16:29
Передача значений из iframe в тело страницы z00m Общие вопросы Javascript 7 01.05.2009 17:20