Можно ли предотвратить перезагрузку iframe её содержимым.

12
GA
На сайте с 11.06.2013
Offline
2
1477

Выставляю значением параметра iframe src страницу из другого домена, а она перенаправляет из текущей страницы на свой адрес. Можно ли предотвратить это действие?

babnicks
На сайте с 23.10.2009
Offline
47
#1
GeorgeA:
Выставляю значением параметра iframe src страницу из другого домена, а она перенаправляет из текущей страницы на свой адрес. Можно ли предотвратить это действие?

Нельзя...

На вызываемом сайте стоит что-то типа:

if ( window.parent.location != 'то, что надо' ) window.parent.location = 'то, что надо';

остановить выполнение JS в iframe Вы никак не можете, соответственно не можете избавиться от этого кода.

100% защита от спам-ботов (https://www.keycaptcha.com)
GA
На сайте с 11.06.2013
Offline
2
#2
babnicks:
Нельзя...

На вызываемом сайте стоит что-то типа:



остановить выполнение JS в iframe Вы никак не можете, соответственно не можете избавиться от этого кода.

Благодарю!

S5
На сайте с 04.01.2010
Offline
77
#3

Остановить выполнение во фрейме js не может, а попытаться перехватить событие - да. Попробуйте погуглить что-то вроде location change event. Для хешей нечто подобное точно встречал

babnicks
На сайте с 23.10.2009
Offline
47
#4
sg552:
Остановить выполнение во фрейме js не может, а попытаться перехватить событие - да. Попробуйте погуглить что-то вроде location change event. Для хешей нечто подобное точно встречал

Впринципе да, можно попробовать поиграться с beforeunload, но скорее всего не поможет... на досуге надо проверить...

UNIT-IS
На сайте с 19.10.2012
Offline
48
#5
babnicks:
Нельзя...
На вызываемом сайте стоит что-то типа:

остановить выполнение JS в iframe Вы никак не можете, соответственно не можете избавиться от этого кода.

Да ладно))

1) А php для чего?


$page = file_get_contents('URL HERE'); // или CURL
echo strip_javascript($page, 0); // 0 = отфильтровать javascript
function strip_javascript($filter, $allowed=0){
if($allowed&1 == 0) // 1 href=... (вариант с подгружаемыми .JS)
$filter = preg_replace('/href=([\'"]).*?javascript:.*?\\1/i', "'", $filter);

if($allowed&2 == 0) // 2 <script.... (вариант с embedded JS)
$filter = preg_replace("/<script.*?>.*?<\/script>/i", "", $filter);
return $filter;
}

2) Не пробовали?

<noscript>iframe</noscript>

3) А как насчет

<script>
nodeIframe.docShell.allowJavascript = false;
</script>

4) Это только для IE

<IFRAME SECURITY="restricted" src="URL"></IFRAME>
babnicks
На сайте с 23.10.2009
Offline
47
#6
UNIT-IS:
Да ладно))

1) А php для чего?


$page = file_get_contents('URL HERE'); // или CURL
echo strip_javascript($page, 0); // 0 = отфильтровать javascript
function strip_javascript($filter, $allowed=0){
if($allowed&1 == 0) // 1 href=... (вариант с подгружаемыми .JS)
$filter = preg_replace('/href=([\'"]).*?javascript:.*?\\1/i', "'", $filter);

if($allowed&2 == 0) // 2 <script.... (вариант с embedded JS)
$filter = preg_replace("/<script.*?>.*?<\/script>/i", "", $filter);
return $filter;
}

Вы понимаете разницу между отображением другого URL'а в iframe и отображением контента со СВОЕГО урла загруженного в iframe :) ?

UNIT-IS:

2) Не пробовали?
<noscript>iframe</noscript>

Вы вообще понимаете что такое NOSCRIPT 😂😂😂 ???

UNIT-IS:

3) А как насчет
<script>
nodeIframe.docShell.allowJavascript = false;
</script>

Это вообще о чём???

UNIT-IS:

4) Это только для IE
<IFRAME SECURITY="restricted" src="URL"></IFRAME>

А вот это да, для IE работает... тут Вы правы :) иногда копи-паст спасает ;)

UNIT-IS
На сайте с 19.10.2012
Offline
48
#7
babnicks:
Вы понимаете разницу между отображением другого URL'а в iframe и отображением контента со СВОЕГО урла загруженного в iframe :) ?

Прекрасно понимаю, не думал что нужно так разжевывать. Вуаля:

file_get_contents('http://example.com');

Вы вообще понимаете что такое NOSCRIPT 😂😂😂 ???

Я не пойму, нужны решения или же их отсутствие?

Ну тогда http://www.w3schools.com/tags/att_iframe_sandbox.asp


Это вообще о чём???

О кроликах... 🙅 Атрибут docShell интерфейса.


А вот это да, для IE работает... тут Вы правы :) иногда копи-паст спасает ;)

Сарказм мало того что не понятен к чему, но и просто неуместен.

babnicks
На сайте с 23.10.2009
Offline
47
#8
UNIT-IS:
Прекрасно понимаю, не думал что нужно так разжевывать. Вуаля:
file_get_contents('http://example.com');

А ниче что в этом случае сайт будет грузиться с Вашего урла, это как-бы очень мягко говоря не тоже самое? 😂

UNIT-IS:

Я не пойму, нужны решения или же их отсутствие?

Ну тобишь всё-таки не знаете что такое noscript 🤣

Совсем не везде работает, но в будущем действительно это поможет:

http://caniuse.com/iframe-sandbox

UNIT-IS:

Атрибут docShell интерфейса.

Какого интерфейса???

UNIT-IS:

Сарказм мало того что не понятен к чему, но и просто неуместен.

Ну просто с noscript и PHP реально повеселили 😂😂😂

UNIT-IS
На сайте с 19.10.2012
Offline
48
#9
babnicks:
А ниче что в этом случае сайт будет грузиться с Вашего урла, это как-бы очень мягко говоря не тоже самое? 😂

Ну и в чем проблема? Цель загрузить удаленный контент или же принцип того что в src будет торчать ссылка на другой домен? 😒

В случае с PHP можно вообще не использовать iframe. Проще всего ответить "нельзя" и точка.

babnicks
На сайте с 23.10.2009
Offline
47
#10
UNIT-IS:
Ну и в чем проблема? Цель загрузить удаленный контент или же принцип того что в src будет торчать ссылка на другой домен? 😒
В случае с PHP можно вообще не использовать iframe. Проще всего ответить "нельзя" и точка.

В случае с PHP вы не загрузите другой сайт :D а загрузите свой сайт с контентом от чужого... разница как-бы существенная ;)

Это будет уже прокси, но никак не отображение сайта в iframe :)

А то может правда проще весь сайт сграбить и показать :) задача как-бы совсем другая и совсем для другого...

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий