Как заблокировать все запросы внутри <iFrame> - PullRequest
3 голосов
/ 15 февраля 2012

Нам нужно заблокировать все запросы на странице, загруженной в тег IFRAME. Страница находится в том же домене, но нам нужно запретить переход по внутренней странице. Очевидно, мы не знаем элементов на внутренней странице. Это могут быть ссылки (якорная ссылка) Javascript-вызовы, JQuery-вызовы, Ajax-вызовы, From submit и т. Д.

Вот способ обработки простых тегов и стандартного представления формы:

$('a').click(function (event) {
    event.preventDefault();
    return false;
});

$(this).submit(function (event) {
    event.preventDefault();
    return false;
});

Например, первая функция работает хорошо, но это только тег, но если она запускается с использованием JQuery, эта функция не работает.

Второй работает нормально только для отправки стандартной формы, но не для отправки Ajax.

Есть ли способ обработать все события?

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

Не уверен, но:

$(document).click(function(event){
    event.preventDefault();
});

Или

$('*').unbind('click');
$('[href]').attr('href', '')

Смотрите этот интересный ответ: Лучший способ удалить обработчик событий в jQuery?

1 голос
/ 15 февраля 2012

Вы можете просто наложить прозрачный <div> на ту же область, что и фрейм. Iframe будет загружаться как обычно, но вы не сможете взаимодействовать с ним.

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