Вот метод, который используется в модулях Commerce SagePay и Commerce Paypoint Drupal, который в основном сравнивается document.location.href
со старым значением, сначала загружая его собственный iframe, а затем внешний.
В общем, идея состоит в том, чтобы загрузить пустую страницу как заполнитель со своим собственным JS-кодом и скрытой формой. Затем родительский JS-код отправит эту скрытую форму, где он #action
указывает на внешний iframe. Как только происходит перенаправление / отправка, код JS, который все еще работает на этой странице, может отслеживать document.location.href
изменения вашего значения.
Вот пример JS, используемый в iframe:
;(function($) {
Drupal.behaviors.commercePayPointIFrame = {
attach: function (context, settings) {
if (top.location != location) {
$('html').hide();
top.location.href = document.location.href;
}
}
}
})(jQuery);
А вот JS используется на родительской странице:
;(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);
Затем во временную пустую целевую страницу необходимо включить форму, которая будет перенаправлять на внешнюю страницу.
src
изменяться свойство при нажатии на ссылку в iframe? Я не уверен в этом - если бы мне пришлось угадывать, если бы сказал «нет». Там являются способы свойств монитора (в Firefox по крайней мере , AFAIK) , но я не уверен , будет ли какое - либо использование в данном случае.