2007년 7월 14일 토요일

Safari버그 - 화면에 보이지 않는 Textarea에 값을 설정하는 경우..

  • Safari 버전: 2.0.3
  • 플랫폼: OS X 10.4
팝업을 띄워서 Textarea에서 값을 받아 설정하는 프로그램(텍스트 + html)을 짜서 Safari에서 테스트를 하는데 안되더군요.
처음에는 코드를 잘못짰나 싶어서 다시 보았는데 Safari의 버그더군요.
Element.show(dialog);
form.dialog_form.textarea.value = "..."
와 같은 코드가 원래 사용한 코드였습니다. 실제로는 좀 더 많은 코드가 사용되기는 합니다만.. 다이얼로그가 화면에 출력되기 전에는 form.value의 값이 동작하지는 않더군요.

그러나, 다이얼로그가 뜬 다음에 주소창에 javascript:form.dialog_form.textarea.value = "..."를 설정하는 경우는 정상적으로 값이 설정이 되었습니다. 구글에서 검색해보니 관련한 버그에 대한 내용이 좀 나오더군요.
Element.show(dialog);
form.dialog_form.textarea.innerHTML = "<span style="color:red;">메모</span>입니다."
저의 경우 이를 해결하기 위해서 innerHTML을 사용해봤습니다만, 동작을 하지 않더군요. 텍스트를 저장하는 것은 가능하였습니다만, html을 입력하는 경우에는 동작을 하지 않더군요. (<span>~</span>은 잘리고 입니다만 나오더군요.)
Element.show(dialog);
form.dialog_form.parentNode.innerHTML = "<textarea><span style="color:red;">메모</span>입니다.</textarea>"
해결책으로 삼은 것은 textarea의 parentNode의 html을 바꿔버리는 것으로 해결은 했습니다만...


이런 버그가 있더군요 =.= ;;

관련 자료: Brian Hartsock's Blog - Safari Textarea bug

댓글 없음:

댓글 쓰기