外部 iframe 如何设法重定向出您的网站?
如何防止这种情况?
如果没有点击,是否可以收听“重定向请求”并阻止它们?
外部 iframe 如何设法重定向出您的网站?
parent.location
不是只读的
如何防止这种情况?
通过不构建不想被构建的不受信任的第三方内容。
你没有。
这自古以来就被称为“框架破坏”(好吧,就“网络”而言)。子框架能够根据需要设置托管窗口。
你唯一能做的就是不要<iframe>
去你不信任的地方。
iframe 可以到达主体和窗口,我们可以看到它可以使用 jqueryUi 在不同 iframe 之间拖放对象,在这种情况下,外部 iframe 可以轻松到达主窗口并使其成为 window.location.href 。我现在很忙,但我认为这将适用于原始 javascript。window.addEventListener('load',function(){}) 或 location 或其他事件可能起作用,然后 event.preventDefault() 可以停止重定向。但是我还没有尝试过。[编辑 hashchange 或喜欢这个事件我相信可以做到:) ]
我是这样做的:
// Listen for unloads
var prevent_bust = 0
window.onbeforeunload = function() { prevent_bust++ }
setInterval(function() {
if (prevent_bust > 0) {
prevent_bust -= 2
var currentTime = new Date();
if((currentTime.getTime()-lastClick) > 500) { // If no clicks in the last .5 second don't redirect
window.top.location = 'http://justwalk.it/stuff/204/foo'
}
}
}, 1)
// Listen for clicks, save time of latest one
var currentTime = new Date().getTime(), lastClick ;
$("body").click(function () {
var currentTime = new Date();
lastClick = currentTime.getTime();
console.log('click time:'+lastClick);
});