如何停止来自iframe内容的javascript功能?

时间:2011-12-24 15:18:06

标签: javascript jquery html iframe

我正在关注另一个网站。但是他们的页面上有一个javascript函数,我不想在我的页面上执行。这是

if (top.location != location) {
top.location.href = document.location.href; }    

我尝试了这个,但它会停止整个页面。

function StopLoading() {
if (!document.all)
{
window.stop();
}
else
{
window.document.execCommand('Stop');
}
}    

<iframe id="i_frame" onload="StopLoading()" src="http://website.com/"></iframe>

2 个答案:

答案 0 :(得分:2)

由于标准的浏览器安全限制(假设涉及的2个站点位于不同的域),我认为您无法做到这一点。这样做的能力将为相当讨厌的事情开辟可能性。您是否应该首先将这个其他网站放在iframe中?

答案 1 :(得分:0)

正如我在earlier answer of mine中所说,只有当您的服务器能够返回HTTP/1.1 204 No Content标头时,才能执行此操作。如果你有这种服务器,那么你可以使用这样的代码:

var prevent_bust = 0;
window.onbeforeunload = function (){
    prevent_bust++;
};
setInterval(function (){
  if (prevent_bust > 0) {
    prevent_bust -= 2;
    window.top.location = 'http://server-which-responds-with-204.com';
  }
}, 1);

此方法描述为here

如果没有204标题,您可能无法执行此操作。并且有充分的理由。框架破坏通常用于防止clickjacking,这可能是非常有害的。