2013-05-17 3 views
1

콘텐츠 스크립트를 사용하여 페이지에 의 UI를 삽입하려하지만 몇 가지 문제점이 있습니다.<iframe>을 페이지 내용에 삽입해도 괜찮습니까?

  • 사람들은 일반적으로 설정/확장자를 사용하여 페이지에서 iframe을 차단합니까?
  • 내 확장 프로그램의 iframe이 차단 된 경우이를 감지 할 수있는 방법이 있습니까?
  • 이 시나리오에서 iframe을 사용하지 않는 다른 이유는 무엇입니까?

사이트에 비슷한 질문이 있지만 특별히 알고 싶은 내용을 묻지 않습니다.

[내가 iframe을 사용하려는 이유는 다음과 같습니다. 내 확장 프로그램은로드 된 웹 사이트 (즉, 모든 웹 페이지)와 독립적으로 실행되어야합니다. 콘텐츠 스크립트는 설정/도움말 등을위한 UI를 표시해야합니다. 현재 페이지의 DOM에 div를 삽입하여이를 수행합니다. 그러나 웹 페이지의 CSS가 확장 프로그램의 UI에 적용되면 수정하는 것이 어려울 것입니다. 을 사용하면이 문제를 피할 수있는 것 같습니다.]

답변

0

알려진 CSS 스타일 속성을 선언적으로 설정하지 않고 DOM에 삽입 할 때 간섭으로부터 CSS를 샌드 박스로 만들려고하면 매우 어렵습니다. 그것은 잘 문서화 문제의 일부 솔루션은 다음 글에서 찾을 수 있습니다

<iframe>로 UI를 떨어 근본적으로 아무 문제가 없다

. 이 동작을 차단할 설정이나 확장을 알지 못합니다.

액자 화 된 UI가 부모 페이지 또는 콘텐츠 스크립트에서 DOM과 상호 작용해야하는 경우 Window.Parent을 사용하여 그렇게 할 수 있습니다. 또한 다른 도메인에서 UI를 가져 오는 경우 Same-Origin Policy을 고려해야 할 수도 있습니다. 순서

0

답변 :

  1. 사람들 do not commonly use settings/extensions to block iFrames. 오히려 반대; 가장 큰 불만은 ISP 및 침출액/포장지 등이 배치 한 iframe에서 콘텐츠를 가져 오는 방법입니다.

  2. 예, iFrame의 JS가 "시작했습니다"라는 메시지를 보내면 iFrame이 차단되었는지 감지 할 수 있습니다. 메시지. 메시지가 감지되지 않으면 최악의 경우를 가정합니다. :)

  3. iFrames를 피할 이유가 없습니다. 작업하려는 PITA가 약간 있습니다. "설정/도움 등을위한 UI 표시"만 필요한 경우 확장자를 the popup window types available to extensions 중 하나만 열어 두는 것이 좋습니다. 페이지의 간섭을 걱정하지 않고 HTML/CSS/JS를 완벽하게 제어 할 수 있습니다.