Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Работа со страницами! (https://javascript.ru/forum/events/75049-rabota-so-stranicami.html)

len'dumat' 29.08.2018 21:41

Цитата:

Сообщение от j0hnik (Сообщение 493613)
<iframe src="https://masterhost.ru/"></iframe>
	<script>
var monitor = setInterval(function(){
    var elem = document.activeElement;
    if(elem && elem.tagName == 'IFRAME'){
		alert('По iframe кликнули!');
        clearInterval(monitor);
    }
}, 100);
	</script>

Спасибо, за скрипт, его и взял:thanks: Изменил для своих целей, при клике в iframe, моя страница поднимается вверх, закрывая iframe собой. Может кому пригодится:
<iframe  src="https://masterhost.ru" frameborder="0" style="width:100%; height:100%; position: absolute; z-index: 2"></iframe>
        <script>
var monitor = setInterval(function(){
    var elem = document.activeElement;
    if(elem && elem.tagName == 'IFRAME'){
        document.getElementById("mydiv").style.zIndex = "3";
    }
}, 100);
    </script> 
        <div id="mydiv"></div>


Как писал выше, нужно еще добавить, к примеру, блоки, заблокировав ненужные для клика места, что сделает этот скрипт не бессмысленным:haha: Конечно гарантии нет, что все равно кликнут куда нужно, но все же, поможет избавится от случайных/глупых кликов по всему iframe:dance:

j0hnik 30.08.2018 00:49

len'dumat'

<iframe src="https://masterhost.ru/" id="ifr"></iframe>
	<script>

		var flag;
		ifr.onmouseover = function(e) {
			flag = true;
			(function run(){
				var elem = document.activeElement;
				if(elem === ifr){
					console.log('По iframe кликнули!');
					ifr.blur();
				}
				if(flag) setTimeout(run,100);
			})();
		};

		ifr.onmouseout = function(e) {
			flag = false;
			ifr.blur();
		};

	</script>


Доработал код, убрал злостный интервал, добавил множественное отслеживание, добавил обработчик onmouseover чтобы не дрочить ф-ию без надобности.


Часовой пояс GMT +3, время: 03:21.