Определить, куда выгружается окно - PullRequest
1 голос
/ 15 июля 2011

Таким образом, на моем сайте я загружаю веб-страницу в iframe, и на некоторых сайтах есть код очистки фрейма для выхода из iframe и перенаправления верхнего окна на их страницу. Я хочу использовать событие onbeforeunload, чтобы определить, куда перенаправляется веб-страница. Есть ли функция, которая позволяет мне делать event.get_redirect_location или что-то в этом роде?

1 Ответ

0 голосов
/ 16 июля 2011

Множество исследований привело меня к выводу, что JavaScript никак не может проверить, каким будет «следующее местоположение», и сравнить два домена, если window.location был установлен ИЗ iframe.

Это единственный известный мне способ предотвращения взлома iframe с сайта.Во-первых, вы устанавливаете функцию onbeforeunload на нормальную работу и предупреждаете пользователя, что он покидает ваш сайт.Тогда - это критическая часть - , вы добавляете код к своим внутренним ссылкам, чтобы запретить изменениям страницы вызывать событие onbeforeunload. Это означает, что событие onbeforeunload сработает ТОЛЬКО, еслипользователь покидает ваш домен :

(function(){
    window.onbeforeunload = function()
    { 
        if( !/\bnagged=true\b/.test( document.cookie ) )
        {
            document.cookie = "nagged=true";
            location.assign('http://www.mysite.com'); 

            return "You are being redirected off our site!"; 
        }
    } 

    var lnk;

    for(var i in document.links)
    {
        if( (lnk = document.links[i] ).href.indexOf( document.domain ) > -1 )
        {
            lnk.onclick = function()
            { 
                window.onbeforeunload = null; 
            } 
        }
    }
})();
...