Javascript 在远程iframe中抑制onbeforeunload

Javascript 在远程iframe中抑制onbeforeunload,javascript,iframe,same-origin-policy,onbeforeunload,Javascript,Iframe,Same Origin Policy,Onbeforeunload,我有一个页面嵌入了来自不同域的iframe(用于信用卡支付)。iframe中加载的页面注册一个onbeforeunload处理程序。这意味着每当我试图离开父页面或点击reload时,它都会请求用户确认。好的,到目前为止 但是,父页面上应该有一些交互,这些交互不需要调用iframe中调用的onbeforeunload处理程序就可以工作。下面是一个简化的示例: <iframe src="https://paymentprovider.com/payment"></iframe>

我有一个页面嵌入了来自不同域的iframe(用于信用卡支付)。iframe中加载的页面注册一个onbeforeunload处理程序。这意味着每当我试图离开父页面或点击reload时,它都会请求用户确认。好的,到目前为止

但是,父页面上应该有一些交互,这些交互不需要调用iframe中调用的onbeforeunload处理程序就可以工作。下面是一个简化的示例:

<iframe src="https://paymentprovider.com/payment"></iframe>
<a href="/abort_payment">Abort payment (fire onbeforeunload)</a>
<a href="/alternative_payment">I don't have a credit card (suppress onbeforeunload)</a>
你觉得那黑客有什么问题吗?这应该有用吗?你知道有什么更好的方法来达到同样的目的吗


谢谢

不,这是一个非常好的解决方案,前提是首先需要javascript才能工作


(你会错过的一个边缘案例是那些关闭了你页面javascript的极客,但不是支付提供商,但听上去,他们只会得到这个恼人的超级问题,不管怎么说,在某种程度上,他们一直在问这个问题。)

听起来是一个很好的解决办法。
iframe = document.getElementById("payment_iframe");
iframe.parentNode.removeChild(iframe)