Это то, чем я закончил. Он игнорирует только следующий редирект после загрузки страницы. Основным недостатком этого метода является то, что если фрейм никогда не вызывает свой фреймбастер (например, из-за того, что он не загружается должным образом, или сайт с фреймами изменяет свой код), это остановит следующую попытку перемещения страницы. Возможным решением было бы выполнить его после загрузки страницы фрейма, но непосредственно перед выполнением любого сценария. Другое решение будет заключаться в том, чтобы перехватывать только изменения URL в базовом URL хоста в рамке. Я понятия не имею, если это возможно, хотя ...
function ignore_next_redirect() {
var redirect_timer;
var prevent_bust = 0
window.onbeforeunload = function() { prevent_bust++; }
redirect_timer = setInterval(function() {
if (prevent_bust > 0) {
window.top.location = 'http://example.org/204'
window.onbeforeunload = function() {}
clearInterval(redirect_timer);
}
}, 1);
}
У него все еще есть проблемы - кажется, он прекращает загрузку контента, если это происходит в начале страницы.
Я знаю, что где-то есть решение - похоже, что в Google-изображениях оно работает. Обновится с любым прогрессом ...