다음은 Commerce SagePay 및 Commerce Paypoint Drupal 모듈에서 기본적으로 document.location.href
자체 iframe을로드 한 후 외부 iframe을로드하여 이전 값과 비교 하는 방법입니다.
따라서 기본적으로 아이디어는 빈 페이지를 자체 JS 코드와 숨겨진 형식의 자리 표시 자로로드하는 것입니다. 그런 다음 부모 JS 코드는 숨겨진 #action
iform이 외부 iframe을 가리키는 곳에 제출합니다 . 리디렉션 / 제출이 발생하면 해당 페이지에서 여전히 실행중인 JS 코드가 document.location.href
값 변경을 추적 할 수 있습니다 .
다음은 iframe에서 사용되는 JS 예입니다.
;(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 이상)이 경우 어떤 속성을 사용할지 잘 모르겠습니다.