다음이나 네이버 검색창에 값 집어 넣기(크로스도메인) javascript
본문
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<c:set var="root" value="${pageContext.request.contextPath }"></c:set>
<title>부모 자식창 인자전달 컨드롤</title>
</head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
function callChild(){
alert("ok");
var childObj=window.open("http://www.daum.net","MsgWindow", "width=500, height=400");
var daumsearch=childObj.document.getElementById('q'); -->여기서 동일 origin 에러
alert("ok");
}
</script>
<div>parent-child</div>
<a href="javascript:callChild()">test</a>
</body>
</html>
[/code]
-------------------------------------------------------------------------
소스와 같이 다음을 새창으로 호출하여 검색창(실제로 다음 검색창 input id='q' 입니다.) 에 특정값을
value로 전달하려고 합니다.
iframe으로 불러오던 새창으로 불러오던 당연히 다른 도메인 이라서 접근이 안되는데요..
어떻게 방법이 없을까요? get방식으로 검색이 아예 되게 주소로 넘기는게 아니라 검색은
안되고 그냥 input text에 값만 집어 넣으려고 합니다.
고수님들의 조언 부탁드립니다
답변 1
불가능합니다.
크로스도메인관련 몇가지 최신규격이 나왔지만, 그 규격을 이용하려면 iframe에 갇히는 프레임에 특정한 소스코드를 추가해두어야 iframe밖에서 제어가 가능합니다.
물론 네이버에서 그걸 허락할 일은 없구요.
기존에 옛날 브라우져 보안버그로 인해 몇가지 가능했던 팁이 있었지만, 최신브라우져들은 그런부분을 엄격하게 막고 있기때문에 이제 편법도 통하지 않습니다.
네이버 페이지를 파싱해서 자신의 도메인하에서 불러와 제어를 할 수 있겠지만, 원하시는 답변은 이것이 아닌듯하여 생략합니다. :)