Page 1 of 1

pasteHTML 은 사용할 수 없는지요?

Posted: 2005 05 14 10:21 16
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.?????????
	}
}

Posted: 2005 05 18 20:10 28
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 소스를 코드로 변환해주는 함수가 없더군요.