我确实有一个网站,其中加载了几个iframe,这是我无法控制的内容。这些iframed页面可能会导致重定向。我确实通过使用这个破坏iframe的破坏代码来阻止这些重定向:
<script>
// Code from here:
// https://stackoverflow.com/questions/958997/frame-buster-buster-buster-code-needed
var prevent_bust = 0
window.onbeforeunload = function(){
prevent_bust++;
};
setInterval(function(){
if (prevent_bust > 0){
prevent_bust -= 2;
window.top.location = '/204-NoContentResponse.php';
}
}, 1);
</script>
这适用于iframe,但现在用户无法手动更改网址,也无法手动离开网页。如果他在他的omnibox / url栏中输入了不同的URL,那么也会阻止这种重定向。
所以这篇文章:Disable onbeforeunload for links不适用于此,不幸的是。
有没有办法让用户通过输入网址,点击书签或点击F5离开页面,但阻止iframe重定向?
更新
我忘了提到这个网站是在用户被迫使用IE9的环境中运行的。所以sandbox属性不可能是不幸的。