부모 창에서 iframe의 링크를 강제로 여는 방법


답변:


617

가장 좋은 해결책은 기본 태그 를 사용하는 것 입니다. iframe의 페이지 헤드에 다음을 추가하십시오.

<base target="_parent">

그러면 부모 창의 페이지에있는 모든 링크가로드됩니다. 링크를 새 창에로드하려면 다음을 사용하십시오.

<base target="_blank">

이 태그는 모든 브라우저에서 완벽하게 지원 됩니다.


4
이 요금은 브라우저 간을 어떻게 다릅니 까?
Charlie Schliesser

3
@Wilf 나는 틀렸다 :;) 다음 링크에 대한 기본 브라우징 컨텍스트를 설정 <base target>하기 <a href>때문에 ; 앞에 와야한다 . 상대 URL이 확인되는 기본 URL을 설정하므로 <base href>URL 참조 ( <* href> <* src> <form action> <object data>…) 앞에 와야 합니다.
sam

5
당신은 왜 해이 질문에 대답 않았다 나는 똑같은 대답, 그것을 대답했다? 하지만 당신은 선택되었습니다. 너무 이상하다.
vsync

5
나는 당신의 대답이 새 창에서 링크를 열지 만, 내 질문은 원래 질문 인 iframe의 부모 창에서 열리기 때문이라고 생각합니다. 천둥을 훔쳐서 죄송합니다!
Chris Vasselli

1
참고 것을 <base태그는 사양에 따라 폐문이 없습니다 w3.org/TR/html5/document-metadata#the-base-element 그것이 있어야하므로<base target="_parent" >
마크 Schultheiss

147

대상 속성을 사용하십시오.

<a target="_parent" href="http://url.org">link</a>

1
내가 이것을 시도, 새 창에서 열려
하임 Evgi

3
+1, 기본 target = "_ parent"는 작동하지만 target = "_ parent"는 실패하지 않았습니다!

7
<base target="_blank">괜찮습니다. 그러나 여기의 질문은 iframe의 모든 링크 동작을 변경하는 것이 아니라 하나의 링크에 관한 것입니다. 나에게 이것은 정답입니다.
kriskodzi

34

JavaScript로 :

window.parent.location.href= "http://www.google.com";

28

당신은 어떤 옵션을 사용할 수 있습니다

부모 페이지 만있는 경우 :

부모 페이지 또는 부모 iframe에 대한 모든 링크 를 열려면 iframe의 head 섹션에 다음 코드를 사용하십시오.

<base target="_parent" />

또는

부모 페이지 또는 부모 iframe에 특정 링크 를 열려면 다음과 같은 방법을 사용하십시오.

<a target="_parent" href="http://specific.org">specific Link</a>
<a  href="http://normal.org">Normal Link</a>

또는

중첩 된 iframe의 경우 :

브라우저 창으로 모든 링크 를 열려면 (브라우저 URL로 리디렉션) iframe의 head 섹션에 다음 코드를 사용하십시오.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
    $(window).load(function(){
        $("a").click(function(){
            top.window.location.href=$(this).attr("href");
            return true;
        })
    })
</script>

또는

브라우저 창으로 특정 링크 를 열려면 (브라우저 URL로 리디렉션) 다음과 같은 방법을 사용하십시오.

<a  href="http://specific.org"   target="_top" >specific Link</a>

또는

<a  href="javascript:top.window.location.href='your_link'">specific Link</a>
<a  href="javascript:top.window.location.href='http://specific.org'">specific Link</a>
<a  href="http://normal.org">Normal Link</a>

1
좋은 대답은 특정 링크에 대해서만 사용해야했지만 수락 된 답변은 페이지의 모든 링크에 대한 대상을 변경하는 방법 만 설명합니다. 감사합니다
dading84

15

다음과 같은 HTML 요소 base가 있습니다.

페이지의 모든 링크에 대한 기본 URL 및 기본 대상을 지정하십시오.

<base target="_blank" />

지정 _blank하면 iframe 내부의 모든 링크 가 외부에서 열립니다.


이것은 중첩 된 iframe에서 상속됩니까?
beppe9000

7

언급 한 바와 같이 대상 속성을 사용할 수 있지만 XHTML에서는 기술적으로 더 이상 사용되지 않습니다. 그것은 일반적으로와 같은 자바 스크립트를 사용하게 parent.window.location합니다.



@PaulD. 지금 게시 한 링크를 404 초 기다립니다.
Dan Loewenherz

1
@ 단 : 아하, 예 감사합니다. 새로운 링크 : dev.w3.org/html5/spec/…
Paul D. Waite

7

시도 target="_parent" 속성 내부 anchor tag.


내가 이것을 시도, 새 창에서 열려
하임 Evgi

4
target = "_ top"을 시도하십시오. iframe에 중첩 iframe이 포함되어 있습니까? 아니면 onclick 이벤트에서 자바 스크립트로 실제 링크가 열립니다?
Gee

5

웹 페이지에서 iframe을 사용하는 경우 iframe에서 HTML 하이퍼 링크 (앵커 태그)를 통해 전체 페이지를 변경하는 동안 문제가 발생할 수 있습니다. 이 문제를 해결하기위한 두 가지 솔루션이 있습니다.

해결 방법 1. 다음 예와 같이 앵커 태그의 대상 속성을 사용할 수 있습니다.

<a target="_parent" href="http://www.kriblog.com">link</a>

해결 방법 2. JavaScript를 사용하여 iframe의 부모 창에서 새 페이지를 열 수도 있습니다.

<a href="#" onclick="window.parent.location.href='http://www.kriblog.com';">

target="_parent"XHTML에서는 더 이상 사용되지 않지만 HTML 5.x에서는 계속 지원됩니다.

다음 링크에서 더 많은 내용을 읽을 수 있습니다 http://www.kriblog.com/html/link-of-iframe-open-in-the-parent-window.html


4

가장 다양하고 가장 다양한 브라우저 솔루션은 "기본"태그를 사용하지 않고 "a"태그의 대상 속성을 사용하는 것입니다.

<a target="_parent" href="http://www.stackoverflow.com">Stack Overflow</a>

<base>태그는 사용 빈도는 낮지 및 브라우저는 더 크로스 브라우저 테스트를 필요로하는 문서 내에서의 배치를위한 요구 사항에 일치하지 않습니다. 프로젝트와 상황에 따라 <base>태그 의 이상적인 크로스 브라우저 배치를 달성하기가 어렵거나 완전히 불가능할 수 있습니다 .

태그 의 target="_parent"속성을 사용하면 <a>브라우저에 친숙 할뿐만 아니라 iframe에서 열고 자하는 링크와 부모에서 열고 자하는 링크를 구별 할 수 있습니다.


3

<a target="parent">새 탭 / 창 <a target="_parent">에서 링크 열기 ... 새 탭 / 창 을 열지 않고 부모 / 현재 창에서 링크를 엽니 다. 점수를 잊어 버리지 마십시오!


2

야 내가 찾았다

<base target="_parent" />

iframe에서 열린 모든 iframe 링크를 여는 데 유용합니다.

$(window).load(function(){
    $("a").click(function(){
        top.window.location.href=$(this).attr("href");
        return true;
    })
})

이것은 전체 페이지 또는 페이지의 특정 부분에 사용할 수 있습니다.

도와 주셔서 감사합니다.



0
   <script type="text/javascript"> // if site open in iframe then redirect to main site
        $(function(){
             if(window.top.location != window.self.location)
             {
                top.window.location.href = window.self.location;
             }
        });
    </script>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.