Javascript/JQuery完全阻止在iFrame中进行导航
我在iframe中加载了相同的域页面(使用sandbox属性)。我使用以下代码防止单击(和所有其他元素)从页面中导航出去:Javascript/JQuery完全阻止在iFrame中进行导航,javascript,jquery,iframe,jquery-events,Javascript,Jquery,Iframe,Jquery Events,我在iframe中加载了相同的域页面(使用sandbox属性)。我使用以下代码防止单击(和所有其他元素)从页面中导航出去: $('#preview_frame').contents().find('body *').off('click').click( function(event){ event.stopPropagation(); event.preventDefault(); } ); 但是,页面上
$('#preview_frame').contents().find('body *').off('click').click(
function(event){
event.stopPropagation();
event.preventDefault();
}
);
但是,页面上的其他Javascript似乎正在通过window.location.href
或window.location.replace
重定向导航
我无法更改iframe内页面的代码,因为它们是从其他站点代理的
我尝试使用iframe卸载事件,但没有成功
我需要禁用在iframe内部导航的功能,无论它是如何操作的。我不是说可以使用sandbox属性禁用的顶级父导航,而是指iframe本身内部的导航
有可能做到这一点吗?您的代码似乎是正确的。如果iframe中的页面来自同一个域,请删除沙盒属性。希望它能解决这个问题
沙盒属性始终将内容视为唯一的来源 您的代码似乎是正确的。如果iframe中的页面来自同一个域,请删除沙盒属性。希望它能解决这个问题
沙盒属性始终将内容视为唯一的来源 使用
beforeunload
事件可以在导航更改发生之前向用户显示一条消息,但这并不适用于所有浏览器/设置,特别是需要测试和查找的iframe。如果这不是一个选项,那么您必须更深入地研究其他脚本更改位置时发生的情况,从它触发的原因开始。@CBroe不幸的是beforeunload事件无法取消url更改。请尝试将此文档委派给事件侦听器。它也不会影响任何非jquery事件监听器或内联事件监听器。没有检查页面就没有简单的答案code@charlietfl我的问题是,iframe中加载的内容几乎来自任何在线网站,因此即使我优化并处理了特定页面,另一个页面也可以包含其他导航方法。我的目标是禁用任何导航的可能性,无论是什么原因导致它,如果在Javascript中是可行的?没有“一刀切”的回答使用beforeunload
事件可以在导航更改发生之前向用户显示消息-但这并不适用于所有浏览器/设置,特别是使用iframe,您需要进行测试并找出答案。如果这不是一个选项,那么您必须更深入地研究其他脚本更改位置时发生的情况,从它触发的原因开始。@CBroe不幸的是beforeunload事件无法取消url更改。请尝试将此文档委派给事件侦听器。它也不会影响任何非jquery事件监听器或内联事件监听器。没有检查页面就没有简单的答案code@charlietfl我的问题是,iframe中加载的内容几乎来自任何在线网站,因此即使我优化并处理了特定页面,另一个页面也可以包含其他导航方法。我的目标是禁用任何导航的可能性,无论是什么原因导致它,如果这在Javascript中是可行的?没有“一刀切”的答案我发布的代码可以阻止链接点击。我已经知道了。问题是如何阻止window.location.href事件,或者更好的是阻止任何URL更改请求。如果在没有任何事件的情况下触发位置更改,我认为我们无法阻止iframe更改位置。我发布的阻止链接单击的代码有效。我已经知道了。问题是如何阻止window.location.href事件,或者更好的是阻止任何URL更改请求。我认为如果在没有任何事件的情况下触发位置更改,我们无法阻止iframe更改位置。