Aquí está el método que se usa en Commerce SagePay y en los módulos de Commerce Paypoint Drupal que básicamente se compara document.location.href
con el valor anterior cargando primero su propio iframe, luego externo.
Básicamente, la idea es cargar la página en blanco como marcador de posición con su propio código JS y forma oculta. Luego, el código JS principal enviará ese formulario oculto donde #action
apunta al iframe externo. Una vez que se produce la redirección / envío, el código JS que aún se ejecuta en esa página puede rastrear sus document.location.href
cambios de valor.
Aquí hay un ejemplo de JS utilizado en iframe:
;(function($) {
Drupal.behaviors.commercePayPointIFrame = {
attach: function (context, settings) {
if (top.location != location) {
$('html').hide();
top.location.href = document.location.href;
}
}
}
})(jQuery);
Y aquí se usa JS en la página principal:
;(function($) {
/**
* Automatically submit the hidden form that points to the iframe.
*/
Drupal.behaviors.commercePayPoint = {
attach: function (context, settings) {
$('div.payment-redirect-form form', context).submit();
$('div.payment-redirect-form #edit-submit', context).hide();
$('div.payment-redirect-form .checkout-help', context).hide();
}
}
})(jQuery);
Luego, en la página de destino temporal en blanco, debe incluir el formulario que redirigirá a la página externa.
src
propiedad cuando se haga clic en un enlace en el iframe? No estoy seguro de eso, si tuviera que adivinar, si diría "no". No son formas a las propiedades del monitor (en Firefox por lo menos que yo sepa), pero no estoy seguro de si va a ser de alguna utilidad en este caso.