pasteHTML 은 사용할 수 없는지요?

국내에 웹 사이트들이 웹 표준을 지키고 OS나 브라우저와 관계 없이 접근성을 향상 시키기 위한 사이트 버그 신고 및 문제 해결을 위한 게시판입니다.
Post Reply
hyuns00

pasteHTML 은 사용할 수 없는지요?

Post by hyuns00 »

현재 마우스 위치에 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.?????????
	}
}
User avatar
하늘다람쥐
도우미
도우미
Posts: 287
Joined: 2004 08 25 13:02 50
Location: 푸른 하늘
Contact:

Post by 하늘다람쥐 »

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 소스를 코드로 변환해주는 함수가 없더군요.
Post Reply