2012-03-28 5 views
2

다른 도메인의 iframe을 포함하는 페이지가 있습니다 (신용 카드 결제). iframe에로드 된 페이지는 onbeforeunload 핸들러를 등록합니다. 즉, 상위 페이지에서 이동하거나 재로드를 시도 할 때마다 사용자에게 확인을 요청합니다. 좋아, 지금까지.원격 iframe에서 미리로드하지 않기

그러나 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> 

iframe이 작동하려면 자바 스크립트가 필요하기 때문에 iframe 샌드 박스를 사용할 수 없습니다. 나는 또한 동적으로 iframe의 샌드 박스 속성을 설정하려고했지만 안정적으로 작동하지 않는 것 같습니다.

iframe = document.getElementById("payment_iframe"); 
iframe.parentNode.removeChild(iframe) 

는 당신이 어떤 문제가 해킹 볼 수 있나요 : 내가 확인 상자를 표시 할 수 있었다

유일한 방법은 링크의 OnClick 핸들러에서 iframe이 제거 있나요? 이것도 작동해야합니까? 같은 것을 성취 할 수있는 더 좋은 방법을 알고 있습니까? 그 첫 번째 장소에서 작업 할 수

감사

+0

내 대답을 확인하십시오. –

+0

좋은 해결 방법과 같은 소리가납니다. –

답변

1

아니, 그것은 꽤 좋은 고체 솔루션의 제공 자바 스크립트가 필요합니다.

(당신이 그리워 할 한 모퉁이의 경우는 페이지에 대한 자바 스크립트를 끄지 만 괴롭히는 것은 아니지만 지불 제공자가 아닌 괴짜입니다. 그러나 그 소리로 그들은이 성가신 초라한 질문 하나를 받게 될 것입니다. 어떤 수준에서 어쨌든 요구하는 종류).

관련 문제