제어 할 수없는 페이지에 iframe이 포함 된 HTML 페이지 (예 : welcome.html)가 있습니다 (예 : app.html). 사용자는 iframe 내의 앱을 사용하여 일부 작업을 수행하고 제출을 클릭합니다. 일단이 작업을 수행하면 iframe 내에서로드되는 새 페이지 (thanks.jsp)로 이동합니다. 내가 제출 한 클릭 한 번 thanks.jsp 전체 프레임 및 iframe 아닌로드 할 수있는 방법이 있나요? 기억하십시오. Submit 버튼이나 app.html의 로직을 제어 할 수 없습니다. 그러나 나는 welcome.html과 thanks.jsp를 제어 할 수 있습니다. 가능한 경우 HTML 및/또는 JavaScript를 사용하고 싶습니다. 미리 감사드립니다.전체 프레임을로드하려면 iframe을 강제 실행하십시오.
1
A
답변
5
실패 할 경우를 대비해 기본 대상과 함께 프레임 버스터를 사용하고 싶을 것입니다.
첫째 : thanks.jsp
게시물 요청을 통해 요청
경우 - 당신이 GET 요청에 대한 응답으로 페이지를 제공하므로 리디렉션합니다.
그런 다음 :
자바 스크립트 framebuster 포함 : 마지막으로
<script type="text/javascript">
if (self != top) { top.location.replace(location); }
</script>
: 사용자가 만들 자바 스크립트를 사용할 수없는 경우
확실히 그들은 더 이상 프레임에 유지하지 않습니다 그들은 다음과 같이해야합니다 :
<base target="_top">
2
thanks.jsp
에 넣을 수 있습니다. 다음 JS는 :
// Parent window not the same as this one
if (self !=top)
{
top.location.href = self.location.href;
}
이것은 당신이 때문에 same origin policy에 프레임이 포함 된 원본 페이지와 같은 서버에 thanks.jsp
을 가지고 제공 작동합니다.
위의 코드는 현재 실행중인 페이지의 URL을 확인한 다음 실행중인 페이지 중 하나 (thanks.jsp
) - 일치하지 않으면 thanks.jsp
URL로 전송됩니다. 이 방법은 thanks.jsp
이 정적 인 페이지 일 때 제대로 작동하지만 이후 데이터 등을 전달하지는 않습니다.