Константин Т.
589 сообщений
#17 лет назад
В том задании было условие не вызывать stopPropagation() в обработчике события, а защита всё равно не должна давать лазить внутрь iframe . Иначе все будут подгружать окна PayPal и пароли ловить.
Vitya Ivanov
29 сообщений
#17 лет назад
Ну так как там сделали , можешь подкинуть функцию...
Константин Т.
589 сообщений
#17 лет назад
Я не разработчик того софта. Я только могу сказать, что там приведён совершенно другой случай. tvv правильно писал про безопасность. Если бы невидимый слой мог перехватывать события, то это было бы нарушением безопасности, значит этого быть не может.
Vitya Ivanov
29 сообщений
#17 лет назад
Чтото не совсем я понял , просто javascript не учил ... а что там такого особенного ? Объясни... ??? если не тяжело
Vitya Ivanov
29 сообщений
#17 лет назад
Вот это преблизительно... "функция сработала и клик передался дальше" Объсните или исходник какойто ?!?!
Константин Т.
589 сообщений
#17 лет назад
Там только изображение взято с другого сайта, сами все элементы с того же, что и скрипт. Тебе же надо управлять содержимым, полученным с другого сайта, а это запрещается.

Вот максимум того, что можно получить:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;&nbsp;charset=windows-1251" />
<title>Тест клика на iframe </title>
<script src="http://jqueryjs.googlecode.com/files/jquery-1.2.2.min.js" type="text/javascript"></script>
<script src="http://brandonaaron.net/docs/dimensions/scripts/jquery.dimensions.min.js" type="text/javascript"></script>

<script type="text/javascript">

function registerClickDiv(){
$('#p1').click(function(e){alert('p1');});
$('#p2').click(function(e){alert('p2'); e.stopPropagation(); });
iframe = $('#iframe1');

// гасим див
$('#divAbs').css({left: iframe.offset().left, top: iframe.offset().top, width: iframe.innerWidth(), height: iframe.innerHeight() })
.click(function(e){alert('divAbs'); /*e.stopPropagation();*/ }).fadeTo( 'slow', 0.01 );
}

function registerClickIframe(){
// пытаемся зарегистрировать обработчик клика для iframe
// работать не должно!
$('#iframe1').contents().click(function(){
alert('click on iframe1');
});

}

</script>
</head>

<body>
<p id="p1">Сюда нажать и передать следующему <a href="http://www.ru">обработчику</a> </p>
<p id="p2">Сюда нажать и не передавать следующему обработчику </p>

<p>iframe: ;
<p><input type="button" onclick="registerClickDiv()" value="Зарегистрировать клик на диве" /></p>
<p><input type="button" onclick="registerClickIframe()" value="Зарегистрировать клик на iframe" /></p>

<iframe id="iframe1" hspace="10" vspace="10" height="800" width="800" src="https://forum.weblancer.net/themes/4431.html"></iframe>
<p>iframe end</p>

<div id='divAbs' style="position:absolute; left:300px; top:100px; width:300px; height:300px; overflow: hidden; background-color:#FFCC99; opacity:0.90; font-size: 3em;">
Div который будет прозрачным
</div>

</body>
</html>
Александр Г.
3 сообщения
#17 лет назад
Да, tvv прав, отловить onClick для содержимоко iframe можно только если инфу грузим с того же домена, так как childNodes.length у iframe с другого домена === 0, увы.
Vitya Ivanov
29 сообщений
#17 лет назад
Вот еще вариант , можно создать index страницу и страницу(на том же домене) с еще одним iframe в котором сайт с другого домена... ?!?!?!?
Vitya Ivanov
29 сообщений
#17 лет назад
Есть кто живой... ?
Цитата:
Вот еще вариант , можно создать index страницу и страницу(на том же домене) с еще одним iframe в котором сайт с другого домена... ?!?!?!?
Вадим Т.
3240 сообщений
#17 лет назад
ldit, нет, это не поможет. Данное ограничение безопасности - очень жесткое, даже основополагающее.