Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/JQuery完全阻止在iFrame中进行导航_Javascript_Jquery_Iframe_Jquery Events - Fatal编程技术网

Javascript/JQuery完全阻止在iFrame中进行导航

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(); } ); 但是,页面上

我在iframe中加载了相同的域页面(使用sandbox属性)。我使用以下代码防止单击(和所有其他元素)从页面中导航出去:

$('#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更改位置。