Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Скрыть фрейм при нажатии на ЛЮБОЕ содержимое фрейм


Автор: BeeMaster 11.1.2015, 07:00
здравствуйте.
нужно. чтобы если нажал на фрейм, то скрывался DIV.
ну или хотя бы чтобы Div скрывался при ЛЮБОМ клике левой кнопки мыши


Код

<script>
function testFunction () 
{
pod.style.display = 'none';
}
</script>
<div id="pod">
<iframe name="IFR" src="http://site.ru/1.html" width="210" height="30" scrolling="no" frameborder="0" ></iframe>
</div>


помогите пожалуйста. очень очень надо!!!

Автор: Aliance 11.1.2015, 10:19
Что такое pod в коде скрипта? Нигде нет ссылки. С чего вдруг такое предположение, что скрипт поймет, что это идентификатор тега и обратится к нему? Почему есть объявление функции testFunction, но нет вызова. Где, кем и когда она по вашему должна вызываться?

Сразу говорю, если фрейм ведет на другой ресурс - вы не сможете получить к нему доступ, политика безопасности. Так что скорее всего нужно отлавливать клик на самом диве - 
Код

<div onclick="this.style.display = 'none';">
   <iframe name="IFR" src="http://site.ru/1.html" width="210" height="30" scrolling="no" frameborder="0" ></iframe>
</div>

Автор: sQu1rr 12.1.2015, 14:27
Цитата(Aliance @  11.1.2015,  07:19 Найти цитируемый пост)
Что такое pod в коде скрипта? Нигде нет ссылки. С чего вдруг такое предположение, что скрипт поймет, что это идентификатор тега и обратится к нему?

Ну потому что ID помещаются в глобальное пространоство (window) по стандарту HTML
http://www.2ality.com/2012/08/ids-are-global.html

Цитата(Aliance @  11.1.2015,  07:19 Найти цитируемый пост)
Так что скорее всего нужно отлавливать клик на самом диве

А фрейм разьве не preventDefault()? нужно проверить будет

Автор: Aliance 14.1.2015, 08:03
Цитата(sQu1rr @  12.1.2015,  15:27 Найти цитируемый пост)
А фрейм разьве не preventDefault()?

А какая разница? Или имелось ввиду отмена всплытия события? Да, возможно. Тогда отже самое, только вместо опущенного, но предполагаемого window. можно использовать префикс top./parent. и вешать обработчик на ифрейм.

Цитата(sQu1rr @  12.1.2015,  15:27 Найти цитируемый пост)
Ну потому что ID помещаются в глобальное пространоство (window) по стандарту HTML

А что будет если я эту переменную объявлю как глобальную в одной из своих функций? Поэтому и не нужно полагаться на эту фичу незапамятных времен.

Автор: sQu1rr 14.1.2015, 12:55
Цитата(Aliance @  14.1.2015,  05:03 Найти цитируемый пост)
А какая разница? Или имелось ввиду отмена всплытия события? Да, возможно. Тогда отже самое, только вместо опущенного, но предполагаемого window. можно использовать префикс top./parent. и вешать обработчик на ифрейм.

Имелась ввиду именно отмена всплытия события. Просто для меня логично было бы если бы внутри iframe события не выплывали наружу... Но вроде, вы правы, все будет работать и так: http://stackoverflow.com/questions/1609741/how-to-add-click-event-to-a-iframe-with-jquery, особенно если jquery

Цитата(Aliance @  14.1.2015,  05:03 Найти цитируемый пост)
А что будет если я эту переменную объявлю как глобальную в одной из своих функций? Поэтому и не нужно полагаться на эту фичу незапамятных времен. 

Я просто указал что скрипт поймет что имеется ввиду, если кроме кода выложенного автором больше ничего нет:
Цитата(Aliance @  11.1.2015,  07:19 Найти цитируемый пост)
Что такое pod в коде скрипта? Нигде нет ссылки. С чего вдруг такое предположение, что скрипт поймет, что это идентификатор тега и обратится к нему?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)