Как остановить функцию JavaScript, которая состоит из содержимого iframed? - PullRequest
0 голосов
/ 24 декабря 2011

Я создаю другой сайт. Но на их странице есть функция javascript, которую я не хочу выполнять на своей странице. Это

if (top.location != location) {
top.location.href = document.location.href; }    

Я пробовал это, но это останавливает всю страницу.

function StopLoading() {
if (!document.all)
{
window.stop();
}
else
{
window.document.execCommand('Stop');
}
}    

<iframe id="i_frame" onload="StopLoading()" src="http://website.com/"></iframe>

Ответы [ 2 ]

2 голосов
/ 24 декабря 2011

Я не верю, что вы можете сделать это из-за стандартных ограничений безопасности браузера (при условии, что 2 вовлеченных сайта находятся в разных доменах).Возможность сделать это откроет возможности для довольно неприятных вещей.Стоит ли сначала размещать этот другой сайт в iframe?

0 голосов
/ 24 декабря 2011

Как я уже говорил в моем более раннем ответе , вы можете сделать это, только если у вас есть сервер, который сможет вернуть заголовок HTTP/1.1 204 No Content.Если у вас сервер такого типа, вы можете использовать такой код:

var prevent_bust = 0;
window.onbeforeunload = function (){
    prevent_bust++;
};
setInterval(function (){
  if (prevent_bust > 0) {
    prevent_bust -= 2;
    window.top.location = 'http://server-which-responds-with-204.com';
  }
}, 1);

Этот метод описан здесь .

Без заголовка 204вы, вероятно, не сможете сделать это.И не зря.Разрушение кадра обычно используется для предотвращения кликбека , что может быть очень вредно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...