2011-01-21 5 views
2

웹 사이트가 있고 페이지 중 하나에 프레임 세트가 포함되어 있습니다 (다른 웹 사이트에서 데이터를 가져와야 함). 문제는 일단 프레임 셋을 포함하는 페이지로 이동하면 다른 링크를 클릭하더라도 더 이상 URL이 변경되지 않는다는 것입니다. 그것은 프레임 셋과 페이지의 링크를 보여줍니다. 예를 들어 프레임 셋이있는 페이지의 URL은 다음과 같습니다프레임 세트를 사용하면 페이지를 탐색 할 때 URL이 변경되지 않습니다. 이 문제를 해결할 방법이 있습니까?

http://www.ourwebsite.com/profile.php

일반적으로, 당신은 웹 사이트에 다른 링크를 클릭하면 해당 페이지가 가지고 어떤 URL/페이지 이름으로 변경됩니다. 그러나 프레임 셋 페이지에 착륙하면 URL이 어떻게 든 가면 http://www.ourwebsite.com/profile.php으로 표시됩니다.

이 문제를 해결할 방법이 있습니까?

답변

1

편집 :

다른 사이트에서 프레임을 표시 할 및 다른 사이트 다음 얻기 위해 아래 내 원래의 대답의 지침에 따라, 자사의 HTML을 방출하는 방법을 제어 할 수있는 경우 target="_top"으로 하이퍼 링크를 방출하는 프레임

그러나 제어 할 수없는 사이트를 프레이밍하고 있다면 프레임 사용은 아마도 작동하지 않을 것입니다. 대신 데이터를 가져 오기 위해 다른 접근 방식을 사용해야합니다. 예를 들어, 서버 응용 프로그램은 file_get_contents() 또는 다른 PHP HTTP 클라이언트 라이브러리를 사용하여 원격 사이트에서 데이터를 가져온 다음 자신의 사이트에서 데이터를 프레임없이 내보낼 수 있습니다. 물론 원격 사이트를 소유하지 않은 경우 이러한 방식으로 데이터를 다시 사용할 수 있는지 확인해야합니다. 이 새로운 프레임의 URL에서 모든 프레임에서 URL을 지적하는 것입니다 주위에 얻을 수

전형적인 방법 :

OLD ANSWER (사용이 계약은 귀하 프레임 (S) 내부의 사이트 (S)를 제어 경우 하이퍼 링크에 target="_top"로, 일반적으로 쿼리 문자열 매개 변수를 포함하는로드 프레임 어떤 프레임 페이지를 말할 예를 들어

, 두 개의 프레임이 처음 /frame1.php/frame2.php에서 지적으로 framset /frameset.php 상상 프레임 1 내부 링크는 다음과 같아야합니다..

<a href="/frameset.php?frame1=link_url&frame2=frame2_current_url" target="_top"> 

여기서 link_url은 해당 프레임으로로드하려는 콘텐츠 페이지이고 frame2_current_url은 현재 프레임 2에로드 된 URL입니다 (페이지를 다시로드 할 때 변경하지 않기를 원하기 때문입니다).

그런 다음 상위 프레임 세트의 코드를 변경하여 해당 쿼리 문자열 매개 변수를 찾은 다음 쿼리 문자열 매개 변수가 제공되지 않은 경우 각 프레임의 기본 URL을 사용하여 각 프레임의 URL을 적절히 설정해야합니다. 쿼리 문자열 매개 변수에 포함 된 모든 URL을 URL 인코딩해야합니다.

자신의 사이트에있는 링크를 가리키는 링크에만이 마법을 적용하고 싶다는 점에 유의하십시오. 당신이 wtih 하이퍼 링크이 끝장 있도록 외부 사이트로의 링크를 들어, 모든 URL을 다시 안 :

<a href="http://www.externalsite.com/" target="_top"> 

경고 :이 방법은 정말에만 아주 엄격한 제어를 통해이 사이트에 적합 생성 된 모든 URL.실제 웹 사이트는 특히 개발자가 아닌 개발자가 컨텐트를 제공하거나 클라이언트 측 스크립트를 통해 탐색을 수행하는 경우 제어가 느슨한 경향이 있습니다.

+0

감사합니다. 그것은 문제를 해결했습니다. – catandmouse

1

<a href="foo" target="_top">