IFrame (HTML)은 더 이상 사용되지 않습니까? [닫은]


90

그것에 대해 모순 된 메시지를 받고 있지 않기를 바랍니다. 무수한 사이트에서 사용하기 때문에 지원이 중단 될 것이라고 상상할 수 없습니다.

이에 대한 몇 가지 추가 질문 :

  1. 이 태그를 단계적으로 제거해야하는 이유는 무엇입니까?
  2. 그것에 대한 대안이 있습니까?

답변:


53

생각 에 W3C는 Strict HTML 및 XHTML doctype에서 iframe을 덤핑하는 데 총을 쐈습니다. 이론적으로는 <object>요소를 사용 하여 문서에 외부 개체를 추가 할 수 있지만 브라우저의 차이와 제한으로 인해 많은 개발자가이 요소를 시작하지 못했습니다. 훨씬 더 실용적인 HTML 5 (아직 초안 임)를 사용하면 iframe이 돌아 왔으며 seamless, 그리고 흥미로운 sandbox.


훌륭합니다. 브라우저가 AJAX 파일 업로드를 지원하기 시작하면 iframe이나 플래시를 사용할 필요가 없습니다.
Xeoncross

@Xeoncross 파이어 폭스와 크롬 수행 developer.mozilla.org/en/Using_files_from_web_applications
jches

2
업데이트 : html5에서 semless 속성이 제거되었습니다. 참조 : caniuse.com/#feat=iframe-seamless
Gabe

76

에 대한 지원 <iframe>은 여전히 ​​HTML 5에 있으므로 가까운 장래에 변경되지 않을 것입니다.

다른 질문에 답하려면 :

  1. <iframe>s (일반적으로 프레임)는 대부분 사용자 친화적이지 않습니다.
    • URL을 통해 프레임의 콘텐츠에 쉽게 액세스 할 수 없습니다 (최소한 프레임 외부의 콘텐츠 손실없이).
    • 대부분의 "technophobe" 사용자는 프레임에 짜증을냅니다.
    • 내가 아는 한 브라우저에서 렌더링하는 데 더 느립니다.
  2. 대안으로는 동적 페이지 생성 (SSI, PHP, Rails 등)과 JavaScript / AJAX를 사용하여 <div>

명확하게 말하면 <iframe>인터페이스 요소 에 대해 이야기 하고 있습니다. Google Mail과 같은 다른 항목을로드하기위한 숨겨진 요소가 아닙니다.


29
Google이 고도로 전문화 된 목적으로 iframe을 사용하고 있다는 점에 +1합니다.
cgp 2009

25

Iframe 페이지 레이아웃에 사용되지 않습니다 . 좋은 CSS 레이아웃 대신 절대 사용하지 마십시오. 테이블 기반 레이아웃이 더 좋습니다.

iframe을 사용하는 좋은 이유는 다음과 같습니다.

  • ads : 예를 들어 adwords는이 기술을 사용합니다. 캡슐화에 좋습니다. 광고 CSS는 페이지를 파괴하지 않습니다.
  • 숨겨진 iframe : 추적, ajax-alternative 등과 같은 수백 가지 유용한 항목에 사용할 수 있습니다.

35
*** 애드워즈에 iframe을 사용하지 마십시오. 서비스 약관에 위배됩니다. *** scribd.com/doc/97655/...
CGP

37
altCognito : 애드워즈는 내가 아닌 iframe을 사용합니다. :) 애드워즈 iframe을 다른 iframe에 넣는 것은 아닙니다.
Thinker

7
나는 그것이 일반적인 실수라는 것을 알고 있으므로 (따라서 모든 기사) 사람들이 당신이 말하는 것을 이해하도록 플래그를 지정하고 싶었습니다.
cgp 2009

5
Iframe은 다른 도메인에서 제공해야하는 복잡한 콘텐츠를 포함 할 때 필수이며 현재 페이지의 CSS 또는 JS 코드로 조작해서는 안됩니다.
vsync

4
당신이 말하는 것은 iframe과 관련이 없습니다. 요점은-iframe을 사용하여 중첩 된 외부 탐색 컨텍스트를 가져옵니다. '페이지 레이아웃'에는 사용하지 않습니다. 중첩 된 브라우징 컨텍스트가 필요한 경우-어떻게 대신 "좋은 CSS 레이아웃"을 사용합니까? 말이 안 돼.
Chris B

24

IFrame은 더 이상 사용되지 않지만 사용 이유는 거의 없습니다.

iframe을 사용하는 이유 :

  • 다른 도메인에서 다른 사람의 물건을 차단하는 데는 좋지만 원활하게 통합되지는 않습니다. (스타일 시트, 자바 스크립트 등)
  • 포함 태그를 사용하는 대신 iframe을 통해 멀티미디어 통합을 더 쉽게 수행 할 수 있습니다.
  • 실제로, gmail의 경우와 같이 사운드 및 기록 관리에 사용하는 정말 특수한 경우입니다.

나는 또한 iframe을 제거 할 필요가 없으며 필요한 태그이며 잠시 동안있을 것이라고 대답 할 것입니다.


12

나는 대부분의 경우에 작동하는 IFrame의 대체물로 Object 태그를 제안하는 많은 포럼을 보았다.

예를 들어, IFrame에 PDF가 표시되고 (PDF 외에 페이지에 표시해야하는 다른 항목이 있기 때문에) Object를 사용하여 제대로 표시 할 수있었습니다.

뭐였 어:

<iframe id="confirmed_pdf" class="current_pdf" src="/prescriptions/show_pdf?id=123" height="570" width="480"></iframe>

되었습니다 :

<object id="confirmed_pdf" class="current_pdf" data="/prescriptions/show_pdf?id=123" type="application/pdf" height="570" width="480">
  <p>[Show this message if displaying the PDF did not work]</p>
</object>

그러나 Object는 페이지의 PDF 부분 만 인쇄 할 수 있어야한다는 요구 사항을 충족하기에 적합한 대체품이 아닙니다.

IFrame은 페이지 내의 자체 창 (기본적으로 창 내의 창)과 같으며 창 개체를 가져 오면 다음과 같이 .print ()를 호출 할 수 있습니다.

jQuery("#confirmed_pdf").contentWindow.print();

IFrame에는 contentWindow 속성이 있으므로 해당 부분 만 인쇄 할 수 있습니다. 개체에는 contentWindow 속성이 없으므로 페이지의 섹션 만 인쇄 할 수있는 방법이 없습니다.

따라서 IFrame을 사용하여 무언가를 표시하는 경우 대신 사용할 수있는 Object와 같은 다른 태그가있는 것 같습니다. 그러나 특정 방식으로 IFrame의 콘텐츠와 상호 작용해야하는 경우 IFrame이 필요할 수 있습니다.


7

IFrame은 AJAX에서 많이 사용됩니다. 예를 들어 Gmail은 내가 믿는 9 개의 숨겨진 IFrame을 사용합니다.


5
나는 5 개의 iframe을 계산합니다. 하나는 숨겨져 있지 않으며 실제로 거의 전체보기 인 그중 하나입니다. IFrame은 일반적으로 Ajax와 함께 사용되지 않습니다 (어쨌든 주요 프레임 워크에서는 사용되지 않음). Gmail은 기록 추적, 사운드 (이상한) 및 일종의 캔버스 그림과 같은 작업에 iframe을 사용하고 있습니다.
cgp 2009

몇 년 전에 읽은 기사를 읽었습니다.
John Topley

7

IFrame 은 죽지 않았지만 Frameset / Frame 은 죽어 가고 있습니다.

IE (IE7 / IE8) 의 지난 2 개 릴리스 에서 프레임 (IFrame이 아님)을 확대하면 재앙적인 결과가 발생했습니다.

반드시 IFrame을 사용하십시오. 그러나 IMHO는 프레임 셋 / 프레임으로부터 떨어져 있습니다.


5

이전 회사에서는 고객이 자신의 웹 사이트에 통합 할 수있는 호스팅 된 애플리케이션을 제공했습니다. 때때로 그들은 IFrame을 사용하여 호스팅 페이지를 기존 디자인에 맞추 곤했습니다. 때로는이 작업이 원활하게 수행되기도했습니다 (예 : IFrame에는 테두리 나 스크롤바가 없었고 페이지의 일부처럼 보였습니다). 나는 이것이 태그의 좋은 사용이라고 생각했습니다.


Iframe은 사용자의 코드가 깨지지 않도록 자신 만의 스타일과 자바 스크립트로 클라이언트 웹 사이트에 넣어야하는 작업을 처리하는 데 반드시 필요합니다. CSS는 쉽게 재정의 될 수 있으며 JS는 가끔 충돌을 일으킬 수 있으므로 (드물게) "폐쇄 시스템"접근 방식에 가장 적합합니다.
vsync

5

일부 상황에서는 매우 유용 할 수 있지만 제한적입니다. 특히 여러 사이트에 공통 기능을 포함합니다.

예를 들어 스코틀랜드 상품 전자 상거래 사이트를 운영하는 고객이 있습니다. 그 일환으로 우리는 성 또는 선택한 타탄에서 클랜 이름을 찾을 수있는 몇 가지 간단한 응용 프로그램을 개발했습니다 (원하는 경우 낄낄 거리지 만 타탄은 우리 경제에 연간 7 억 달러 가치가 있음). 이 데이터베이스는 놀랍도록 크고 (코어 이름과 타탄 테이블에 거의 1 만 행) 상당히 정기적으로 업데이트됩니다.

따라서 하나의 웹 사이트에서 실행되도록 설정 한 다음 iframe을 사용하여이를 다른 웹 사이트에 임베드하여 간단한 자바 스크립트 매개 변수 전달을 가능하게하여 타탄 또는 클랜 선택을 임베딩 사이트의 기능과 통합 할 수 있습니다. iframe은 noborder로 설정되어 최종 사용자에게 완전히 매끄럽게 보입니다.

물론이를 수행하는 다른 방법이있을 수 있지만 iframe의 사용은 간단하고 강력합니다. 그리고 그것은 확실히 구식이 아닙니다.


5

코스 용 말 ... <iframe>은 다른 것과 비슷합니다 ... 올바른 목적을 위해서는 올바른 도구입니다. 잘못된 목적으로 그들은 못생긴 해킹이거나 더 나쁘다.

Ajax에서 <div>는 종종 더 적절한 컨테이너입니다. 일부 지역에서는 <iframe>에서 지원하는 것처럼 자신의 사이트의 일부로 외부 콘텐츠를 전달하는 행위가 부적절합니다.

우리 팀은 요 전에 사용자에게 HTML 이메일 기록에 대한 액세스 권한을 제공하는 이상적인 방법으로 <iframe>을 사용했습니다. 이메일은 웹 템플릿에 쉽게 삽입하려는 완전한 <html> 페이지였습니다. <iframe>은 그 데이터를 표현하기에 절대적으로 완벽했습니다.] '.

반면에 <iframe>은 사이트에 다시 출력되는 사용자 제출 콘텐츠에서 거의 항상 제거되거나 비활성화되어야합니다. 그 맥락에서 주요 보안 문제이기 때문입니다.


4

Google 가젯 사양은 현재 iframe에 의존합니다. http://code.google.com/apis/gadgets/docs/spec.html

현재는 여러 도메인 / 제공자에서 가져온 자바 스크립트 앱에 대한 격리를 제공하는 유일한 간단한 방법입니다.

또한 사람들이 타사 웹 사이트에 삽입하는 많은 위젯은 iframe을 사용합니다.

단점이 있지만 iframe은 웹의 일반적인 문제에 대한 실용적인 솔루션을 제공합니다. 나는 그들이 올 시간 동안 주변에있을 것이라고 추측해야합니다.


2

일반 프레임이 필요한 작업을 수행 할 수 없기 때문에 사이트를 일반 프레임 셋에서 Iframe으로 변경했습니다. 나머지 코드베이스에는 문제가 발생하지 않았습니다.


2

규정 준수 및 보안 문제로 인해 Iframe을 사용하게 될 수도 있습니다. 쇼핑 카트는 결제 처리 측면에 대한 전적인 책임을지지 않고 일부 웹 페이지의 일부로 쇼핑 카트를 시각적으로 통합하려는 경우 널리 사용되는 IFrame 기반 구현입니다.

우리는 일반적으로 Iframe을 제공하여 전자 상거래 항목과 고객이 턴키 방식을 좋아하는 방식으로 통합합니다.


0

저는 풀다운 메뉴, 목록, 콘텐츠 블록 등의 모든 것에 프레임을 사용하여 .net 웹 양식의 복잡성을 다루는 회사에서 일합니다. 이 응용 프로그램은 매우 느리고 IE에서만 실행됩니다. 이러지마

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