국내에 웹 사이트들이 웹 표준을 지키고 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 소스를 코드로 변환해주는 함수가 없더군요.
Users browsing this forum: No registered users and 1 guest