미채택 완료

아이프레임에서 포커스문제

2018-10-10 (수) 11:00:37 4,439

iframe으로 외부페이지를 추가했는데,

그 외부페이지에서는 텍스트입력창으로 focus가 생깁니다.

그래서 모바일화면에서는 텍스트 입력창이 자동으로 떠올라요..

그래서 아주 불편하네요..  

포커스가 생기지않게 하는 방법을 찾고있습니다.

$(':focus').blur(); this.blur(); document.body.focus(); 

여러가지 다 해봤는데.. 실패했습니다..

조언주시면 감사하겠습니다..  

|

답변 2개 / 댓글 4개

자답입니다..  다음과 같이 처리하였습니다.

function iframeloading() {

document.getElementById("iframeSelf").blur();

// set focus on #foo

document.getElementById("button_down").focus();

// when iframe tries to focus, focus #foo

document.getElementById("button_down").onblur = function() { this.focus(); };

}

답변에 대한 댓글 2개

노파심에 묻습니다.
서로 다른 사이트간에 javascript가 통했다는건가요?
다른 사이트 간에 javascript 가 통했다는게 아니구요..
iframe 객체에 포커스를 없애고, 상위객체에 포커스를 주고
그런데 그것만 하면 다시 아이프레임이 포커스를 가져가는데
그걸 방지하기 위해서 상위객체가 포커스를 잃으면 다시 포커스를 주는 코드를 짠것입니다.

하위 페이지의 객체를 처리하는 게 아니고, 상위페이지에서 focus를 계속 유지하겠다는 것이지요

same-origin policy 에 따라

프로그토콜, 호스트, 포트가 다르면 서로 다른 사이트로 보기 때문에

Same-Origin에러가 날겁니다.

즉, 자바스크립트도 통하지 않죠.

아마도 그런 문제일 듯 싶습니다.

답변에 대한 댓글 2개

그런데 하위 페이지를 제어하겠다는 게 아니라
상위페이지로 포커스를 주겠다는건데 안되니 답답하네요
상위에서 하위든
하위에서 상위로든 그렇게 되면 보안에 문제가 있게됩니다.
그리고 하위에서 상위페이지를 건드는 문제가 심각하므로
그누보드에서도 iframe 주소에 필터링을 걸고 있죠.

답변을 작성하려면 로그인이 필요합니다.