그것에 대해 모순 된 메시지를 받고 있지 않기를 바랍니다. 무수한 사이트에서 사용하기 때문에 지원이 중단 될 것이라고 상상할 수 없습니다.
이에 대한 몇 가지 추가 질문 :
- 이 태그를 단계적으로 제거해야하는 이유는 무엇입니까?
- 그것에 대한 대안이 있습니까?
답변:
내 생각 에 W3C는 Strict HTML 및 XHTML doctype에서 iframe을 덤핑하는 데 총을 쐈습니다. 이론적으로는 <object>
요소를 사용 하여 문서에 외부 개체를 추가 할 수 있지만 브라우저의 차이와 제한으로 인해 많은 개발자가이 요소를 시작하지 못했습니다. 훨씬 더 실용적인 HTML 5 (아직 초안 임)를 사용하면 iframe이 돌아 왔으며 seamless
, 그리고 흥미로운 sandbox
.
에 대한 지원 <iframe>
은 여전히 HTML 5에 있으므로 가까운 장래에 변경되지 않을 것입니다.
다른 질문에 답하려면 :
<iframe>
s (일반적으로 프레임)는 대부분 사용자 친화적이지 않습니다.
<div>
명확하게 말하면 <iframe>
인터페이스 요소 에 대해 이야기 하고 있습니다. Google Mail과 같은 다른 항목을로드하기위한 숨겨진 요소가 아닙니다.
Iframe 은 페이지 레이아웃에 사용되지 않습니다 . 좋은 CSS 레이아웃 대신 절대 사용하지 마십시오. 테이블 기반 레이아웃이 더 좋습니다.
iframe을 사용하는 좋은 이유는 다음과 같습니다.
IFrame은 더 이상 사용되지 않지만 사용 이유는 거의 없습니다.
iframe을 사용하는 이유 :
나는 또한 iframe을 제거 할 필요가 없으며 필요한 태그이며 잠시 동안있을 것이라고 대답 할 것입니다.
나는 대부분의 경우에 작동하는 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이 필요할 수 있습니다.
IFrame은 AJAX에서 많이 사용됩니다. 예를 들어 Gmail은 내가 믿는 9 개의 숨겨진 IFrame을 사용합니다.
이전 회사에서는 고객이 자신의 웹 사이트에 통합 할 수있는 호스팅 된 애플리케이션을 제공했습니다. 때때로 그들은 IFrame을 사용하여 호스팅 페이지를 기존 디자인에 맞추 곤했습니다. 때로는이 작업이 원활하게 수행되기도했습니다 (예 : IFrame에는 테두리 나 스크롤바가 없었고 페이지의 일부처럼 보였습니다). 나는 이것이 태그의 좋은 사용이라고 생각했습니다.
일부 상황에서는 매우 유용 할 수 있지만 제한적입니다. 특히 여러 사이트에 공통 기능을 포함합니다.
예를 들어 스코틀랜드 상품 전자 상거래 사이트를 운영하는 고객이 있습니다. 그 일환으로 우리는 성 또는 선택한 타탄에서 클랜 이름을 찾을 수있는 몇 가지 간단한 응용 프로그램을 개발했습니다 (원하는 경우 낄낄 거리지 만 타탄은 우리 경제에 연간 7 억 달러 가치가 있음). 이 데이터베이스는 놀랍도록 크고 (코어 이름과 타탄 테이블에 거의 1 만 행) 상당히 정기적으로 업데이트됩니다.
따라서 하나의 웹 사이트에서 실행되도록 설정 한 다음 iframe을 사용하여이를 다른 웹 사이트에 임베드하여 간단한 자바 스크립트 매개 변수 전달을 가능하게하여 타탄 또는 클랜 선택을 임베딩 사이트의 기능과 통합 할 수 있습니다. iframe은 noborder로 설정되어 최종 사용자에게 완전히 매끄럽게 보입니다.
물론이를 수행하는 다른 방법이있을 수 있지만 iframe의 사용은 간단하고 강력합니다. 그리고 그것은 확실히 구식이 아닙니다.
코스 용 말 ... <iframe>은 다른 것과 비슷합니다 ... 올바른 목적을 위해서는 올바른 도구입니다. 잘못된 목적으로 그들은 못생긴 해킹이거나 더 나쁘다.
Ajax에서 <div>는 종종 더 적절한 컨테이너입니다. 일부 지역에서는 <iframe>에서 지원하는 것처럼 자신의 사이트의 일부로 외부 콘텐츠를 전달하는 행위가 부적절합니다.
우리 팀은 요 전에 사용자에게 HTML 이메일 기록에 대한 액세스 권한을 제공하는 이상적인 방법으로 <iframe>을 사용했습니다. 이메일은 웹 템플릿에 쉽게 삽입하려는 완전한 <html> 페이지였습니다. <iframe>은 그 데이터를 표현하기에 절대적으로 완벽했습니다.] '.
반면에 <iframe>은 사이트에 다시 출력되는 사용자 제출 콘텐츠에서 거의 항상 제거되거나 비활성화되어야합니다. 그 맥락에서 주요 보안 문제이기 때문입니다.
Google 가젯 사양은 현재 iframe에 의존합니다. http://code.google.com/apis/gadgets/docs/spec.html
현재는 여러 도메인 / 제공자에서 가져온 자바 스크립트 앱에 대한 격리를 제공하는 유일한 간단한 방법입니다.
또한 사람들이 타사 웹 사이트에 삽입하는 많은 위젯은 iframe을 사용합니다.
단점이 있지만 iframe은 웹의 일반적인 문제에 대한 실용적인 솔루션을 제공합니다. 나는 그들이 올 시간 동안 주변에있을 것이라고 추측해야합니다.
저는 풀다운 메뉴, 목록, 콘텐츠 블록 등의 모든 것에 프레임을 사용하여 .net 웹 양식의 복잡성을 다루는 회사에서 일합니다. 이 응용 프로그램은 매우 느리고 IE에서만 실행됩니다. 이러지마