Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 29.08.2018, 15:19
Новичок на форуме
Отправить личное сообщение для len'dumat' Посмотреть профиль Найти все сообщения от len'dumat'
 
Регистрация: 28.08.2018
Сообщений: 7

Сообщение от Rise Посмотреть сообщение
А он загрузится? Просто многие сайты запрещают себя в iframe грузить.
Да должен. Я ещё не реализовывал это предположение.
Вечером попробую
Ответить с цитированием
  #12 (permalink)  
Старый 29.08.2018, 16:23
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Клик по iframe не виден в родительском окне.
<div id="result_click"></div>
<div id="result_over"></div>
<iframe id="test" src="https://www.youtube.com/embed/eCfDxZxTBW4"></iframe>
<script>
document.onclick = function(e) {
    result_click.innerText = "Click " + e.target;
}
document.onmouseover = function(e) {
    result_over.innerText = "Mouseover" + e.target;
}
</script>

mouseover, например, виден.

Последний раз редактировалось Dilettante_Pro, 29.08.2018 в 16:30.
Ответить с цитированием
  #13 (permalink)  
Старый 29.08.2018, 19:19
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<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>
Ответить с цитированием
  #14 (permalink)  
Старый 29.08.2018, 21:41
Новичок на форуме
Отправить личное сообщение для len'dumat' Посмотреть профиль Найти все сообщения от len'dumat'
 
Регистрация: 28.08.2018
Сообщений: 7

Сообщение от j0hnik Посмотреть сообщение
<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>
Спасибо, за скрипт, его и взял Изменил для своих целей, при клике в 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>


Как писал выше, нужно еще добавить, к примеру, блоки, заблокировав ненужные для клика места, что сделает этот скрипт не бессмысленным Конечно гарантии нет, что все равно кликнут куда нужно, но все же, поможет избавится от случайных/глупых кликов по всему iframe
Ответить с цитированием
  #15 (permalink)  
Старый 30.08.2018, 00:49
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

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 чтобы не дрочить ф-ию без надобности.

Последний раз редактировалось j0hnik, 30.08.2018 в 01:00.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вакансия: Программист IOS, работа в офисе,г.Ростов-на-Дону Анна NikitaOnline Работа 0 21.03.2016 18:45
работа менеджером georgi Работа 1 29.03.2013 14:18
Постоянная работа / Front-end / Москва kooper Работа 4 29.09.2011 22:06