HTML5에서는 왜 프레임이 더 이상 사용되지 않지만 iFrame은 사용되지 않습니까?


67

HTML5에서는 왜 프레임이 더 이상 사용되지 않지만 iFrame은 사용되지 않습니까? 결국, 둘 사이에는 거의 차이가 없습니다. 많은 경우에 그들 중 하나를 사용하면 동일한 결과를 얻을 수 있습니다 (잘못되면 나를 용서하십시오)?



링크 주셔서 감사하지만 iframe이 더 이상 사용되지 않는 두 가지의 작은 차이점은 무엇입니까?

1
프레임은 처음부터 끔찍한 아이디어 였지만 iframe에는 몇 가지 합법적 인 사용 사례가 있습니까?
GordonM

답변:


81

게시물에 몇 가지 오해가 있습니다. 첫째, frameframeset요소는 HTML5에서 더 이상 사용되지 않으며 더 이상 사용되지 않습니다 (즉, 완전히 제거되었습니다).

둘째, frameand frameset요소는 요소와 같지 iframe않으며 동일한 출력을 제공하지도 않습니다.

  • frameset요소는 웹 페이지에 다른 문서 모델을 포함하는 수단으로 페이지의 본문 요소를 대체합니다. 유용성 및 접근성이 나쁘고 달성하려는 목표가 CSS 및 유비쿼터스 서버 측 개발로 완전히 대체되었습니다.

  • 반면에 iframe요소는 페이지 본문을 대체하지 않습니다. 콘텐츠 블록 내에 포함 된 새로운 브라우징 컨텍스트를 포함하는 수단으로 사용됩니다. 프레임 셋 모델과 동일한 사용성 또는 접근성 문제를 겪지 않으며 임베디드 브라우징 컨텍스트 (위젯이 가장 많은 예)를 포함해야하는 거의 모든 곳에서 사용됩니다. 1

iframeHTML5에서 또한이 될 수 있다는 점에서 추가 기능에 소요 샌드 박스 부모 문서가 내에서 실행됩니다 결정할 수 있도록. 이렇게하면 신뢰할 수없는 내용을 포함 할 때 부모 문서 (및 부모 문서 방문자)에 대한 보안이 어느 정도 보장됩니다.


노트

참고 1 :object 요소 는 요소와 다소 겹치지 iframe만 다른 콘텐츠 모델 (주로 플러그인 용)을 가지고 있으며 자체 경고 세트가 있으며 iframe요소에 샌드 박스 속성이 없습니다 .


8
왜 프레임 셋 요소가 "사용성"및 "접근성"에 좋지 않은데 iframe 요소는 그렇지 않습니까?
meriton-파업에

18
@meriton 프레임 셋은 우선 순위가 동일한 여러 문서로 페이지를 구성합니다. 이로 인해 특정 시간에 어떤 문서에 초점을 맞출지를 모르는 화면 판독기어려움을 겪 습니다. 반면에 Iframe 요소는 단일 페이지에 간단히 포함됩니다. 이미지가 포함되어있는 것과 다르지 않습니다.

9
스크린 리더를위한 도전 : 제가 말씀 드린 맹인들은 무시할 수 있고 필요할 때만 읽을 수 있기 때문에 탐색을 별도의 프레임 (iFrame 아님)에 고정시키는 것을 선호한다고 말했습니다. 화면 판독기의 실제 범인은 Javascript 및 AJAX로 현재 화면 판독기에서 페이지를 완전히 사용할 수 없습니다 (자, 내 정보는 약 10 개월 전). 스크린 리더에 대한 개인적인 경험이이를 지원합니다.
GlenPeterson

4
2005 년에 자주 인용 된 많은 접근성 주장이 업데이트를 위해 기한이 지 났는지 궁금합니다. 반대 의견을 보내 주셔서 감사합니다.
Erik Reppen

1
@GlenPeterson 프레임 요소가없는 동일한 효과는 CSS를 사용하여 블록 요소를 뷰포트에 고정시켜 얻을 수 있습니다. 그런 종류의 탐색을 원한다면 어떻게해야합니까? 더 의미가 있습니다.
netrox

8

프레임 (프레임 세트)은 문서 역할을합니다. HTML 문서 구조와 탐색이 중단되어 제거되었습니다. 예 : 한 프레임에 링크가 있고 다른 프레임에 컨텐츠가 있으며 새 창에서 페이지의 링크를 열 수 없으며 특정 하위 페이지에 링크 할 수 없습니다.

반면에 iframe은 콘텐츠 (예 : 광고)를 샌드 박스하기 위해 올바르게 사용하면 아무 것도 깨지 않습니다.


7

프레임 세트는 종종 웹의 기본 원칙을 위반하는 방식으로 사용됩니다. 각 문서에는 단일 URL이 있습니다. 이로 인해 링크, 책갈피, 검색 엔진 등에 문제가 발생합니다.

프레임 세트의 일반적인 사용은 로고 또는 헤더가있는 상단의 프레임, 메뉴가있는 측면의 프레임 및 컨텐츠 프레임입니다. 그러나 검색 엔진은 개별 페이지의 색인을 생성하므로 Google에서 일부 페이지를 찾으면 프레임 세트없이 콘텐츠 페이지에 직접 연결되므로 탐색 기능이 손실됩니다. 링크 및 책갈피의 문제점은 일반적으로 프레임 세트 자체를 잃지 않고 프레임 세트 내의 특정 컨텐츠 페이지를 링크하거나 책갈피에 추가하려는 경우입니다. 그렇게하는 쉬운 방법은 없습니다.

프레임 세트가 처음에 인기를 얻은 이유는 스크롤하는 컨텐츠 영역이있는 정적으로 배치 된 헤더 및 메뉴를 허용했기 때문입니다. 그러나 오늘날 CSS를 사용하면 훨씬 쉽게 달성 할 수 있습니다. 또한 프레임을 사용하면 서버 측 코딩을 사용하지 않고도 여러 페이지에서 로고 및 메뉴와 같은 공통 요소를 사용할 수 있습니다. 이는 서버 측 코딩이 지루하고 오류가 발생하기 쉬운 (예 : CGI 스크립트) 시간에 이점이었으며 많은 호스트가 서버 측 스크립팅을 전혀 허용하지 않았습니다. 오늘날 CMS (Content Management Systems) 및 더 나은 서버 측 플랫폼으로 인해 서버 측에서 훨씬 더 잘 처리됩니다.

따라서 기본적으로 프레임 셋을 사용하면 이점이 없으며 많은 문제가 있습니다.

IFrame 프레임 세트와 동일한 방식으로 사용될 있으며,이 경우에도 동일한 문제가 발생합니다. 그러나 동일한 문제를 일으키지 않는 많은 합법적 인 iframe 사용이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.