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' 28.08.2018 21:30

Работа со страницами!
 
Всем привет. Не знаю как назвать тему, для меня это впервой, просить совета. Я даже не уверен возможно ли это сделать.
В общем:
Есть страница(чужого сайта), в которой пользователь должен выполнить некоторые действия.
И есть еще страница(уже моего сайта), на которую отправляется пользователь, после выполнения тех самых действий на странице чужого сайта.
Так вот, это вообще возможно реализовать?:write:

len'dumat' 28.08.2018 21:54

Я сам его туда отправляю со своей страницы и мне нужно отследить, выполнил ли он действие на той странице, если да, то моя страница сайта открывается ему.
Представь страницу с модальным окном, в котором нужно нажать на "Ок", иначе оно не закроется и ты не сможешь продолжить пользоваться сайтом.
Мне нужно также, но чтобы действие выполнилось на стороннем сайте:dance:
Вот у меня вопрос, возможно ли это?

j0hnik 28.08.2018 23:31

скрипт на тот сторонний сайт загрузить сможете?

len'dumat' 29.08.2018 06:50

Цитата:

Сообщение от Rise (Сообщение 493577)
Нет конечно, если сторонний сайт не предоставляет специального интерфейса для отслеживания действий пользователя на своем сайте.

Глупо наверно, но если страницу чужого сайта загрузить в iframe на своей странице и поместить iframe поверх страницы, может есть какая-то функция для отслеживания кликов внутри своих iframe. Когда клик произойдёт, то iframe поместить на задний план или вовсе закрыть, если возможно.

len'dumat' 29.08.2018 06:52

Цитата:

Сообщение от j0hnik (Сообщение 493570)
скрипт на тот сторонний сайт загрузить сможете?

Нет, в этом и соль:no:

j0hnik 29.08.2018 13:32

Цитата:

Сообщение от len'dumat' (Сообщение 493578)
может есть какая-то функция для отслеживания кликов внутри своих iframe

можно отследить что внутрь кликнули, а конкретное действие наверное не получится. по крайней мере без каких то наворотов.

len'dumat' 29.08.2018 13:51

Цитата:

Сообщение от j0hnik (Сообщение 493594)
можно отследить что внутрь кликнули, а конкретное действие наверное не получится. по крайней мере без каких то наворотов.

Если я сделаю страницу трехмерной, поверх своей страницы наложу iframe, а поверх iframe, допустим изображение, ограничивая тем самым пользователя на клик в не нужном месте, оставив пространство только там где нужен клик, даже можно указать подсказку где кликнуть в этом изображении, то можно отследить этот клик функцией и закрыть/опустить iframe и img на задний план, после проделанного клика?:)
Если понятен мой мазохизм, то помогите написать скрипт отслеживания клика внутри iframe, спасибо всем кто отвечал!:)

len'dumat' 29.08.2018 15:19

Цитата:

Сообщение от Rise (Сообщение 493602)
А он загрузится? Просто многие сайты запрещают себя в iframe грузить.

Да должен. Я ещё не реализовывал это предположение.:dance:
Вечером попробую:)

Dilettante_Pro 29.08.2018 16:23

Клик по 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, например, виден.

j0hnik 29.08.2018 19:19

<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>

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, время: 21:53.