국내에 웹 사이트들이 웹 표준을 지키고 OS나 브라우저와 관계 없이 접근성을 향상 시키기 위한 사이트 버그 신고 및 문제 해결을 위한 게시판입니다.
hyuns00
Post
by hyuns00 » 2005 05 14 10:21 16
현재 마우스 위치에 html소스를 삽입하는 소스인데
파이어폭스에서는 pasteHTML을 어떻게 해야 하는지요??
Code: Select all
function InsertHTML(html)
{
document.getElementById("WebEditIFrame").contentWindow.focus();
if (MsBrowser)
{
var CurrRange = document.getElementById("WebEditIFrame").contentWindow.document.selection.createRange();
CurrRange.pasteHTML(html);
}
else
{
var CurrRange = document.getElementById("WebEditIFrame").contentWindow.getSelection().getRangeAt(0);
CurrRange.?????????
}
}
하늘다람쥐
도우미
Posts: 287 Joined: 2004 08 25 13:02 50
Location: 푸른 하늘
Contact:
Post
by 하늘다람쥐 » 2005 05 18 20:10 28
http://joemaller.com/2005/04/24/post503 ... workaround
음, 뭔가 크로스브라우징에는 안맞는 코드인 듯 싶네요. 위의 글을 보시면 아시겠지만, 단순히 IE만 가린다고 해결될 문제가 아니거든요.
아무튼 불여우에서 어떻게 바꿀지를 물어보셨으니, 그에 대한 답변을 드리자면..
Code: Select all
CurrRange.deleteContents();
CurrRange.insertNode(CurrRange.createContextualFragment(html));
즉 선택된 범위의 내용을 삭제하고 그 자리에 html 코드를 삽입하는 스크립트입니다. createContextualFragment()는 html 소스를 html 코드로 변환하는 함수인데, 이게 Gecko에서만 사용가능하다고 나와있습니다. 즉, 불여우에 종속된 코드라는 얘기지요. 표준코드로는 html 소스를 코드로 변환해주는 함수가 없더군요.