묻고답하기
Edge 브라우저에서 제 게시판 툴바 중에 특수문자랑 미디어 삽입이 동작하지 않는데 해결방법을 모르겠네요.
2016.03.20 19:35
[bbs/skin/f2plus_gallery_3_0/swe/ed_toolbar.php]
<td style='padding:0 2 0 2;'><a onClick='javascript:command(this,event);' id='ed_asword' title='특수문자' class='a_style_0'><img src='<?=$dir?>/images/edbtn/ed_asword.gif' border='0' width='18' height='18' id='ed_asword_img' onmouseover='buttonover(this)' onmouseout='buttonout(this)'></a></td>
위 코드에서 특수 문자 삽입 툴바 아이콘을 클릭하면 아래의 edit.js 파일의 command() 함수가 호출되고 거기서 Layer_xy() 함수가 호출되면서 layer.js 파일의 'ed_aswordtable' 특수문자 테이블 레이어가 보이게 되고 레이어 안의 특수문자 하나를 클릭하게 되면 layerClick() 함수가 호출되면서 마지막 소스처럼 execCommand("InsertHTML",false,[objcmd]) 커맨드에 의해 현재 커서의 위치에 해당 특수문자가 삽입이 되는 구조인데 이게 Edge 브라우저에서 동작하지 않아서 해결방법을 찾아보았지만 마땅한 해결책이 구글에서도 보이지를 않습니다. 일단 IE11 소스 부분처럼 해도 안되는 걸 보면 IE11과도 호환이 안되는 것 같던데 이 문제에 대한 해결방법을 찾습니다. 뭔가 Edge 브라우저에서만의 고유한 사용법이 있는 것 같은데 그게 뭔지 모르겠습니다. 동일한 현상으로 보이는 미디어 삽입과 더불어 이 두가지 문제랑 이전 포스트에서 언급했던 미리보기 문제만 해결하면 호환성은 거의 마무리가 되는데 무엇을 어떻게 해결해야 할지 모르겠네요. ㅡ_ㅡ;
[bbs/skin/f2plus_gallery_3_0/swe/edit.js]
case ("ed_asword") :
{
Layer_hidden(ed_asworddiv);
Layer_xy(ed_asworddiv,'ed_aswordtable',0,+10,myEvent);
break;
}
[bbs/skin/f2plus_gallery_3_0/swe/edit.js]
function Layer_xy(obj,objt,lpx,lpy,myEvent)
{
var scrollLeft = (document.documentElement && document.documentElement.scrollLeft) || document.body.scrollLeft;
var scrollTop = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
obj.style.left = (myEvent.clientX + scrollLeft + lpx) + "px";
obj.style.top = (myEvent.clientY + scrollTop + lpy) + "px";
obj.style.visibility = "visible";
if(objt) {
start_timeout(document.getElementById(objt));
}
}
[bbs/skin/f2plus_gallery_3_0/swe/layer.js]
var sw_layers_asword = "<div id='ed_asworddiv' style='position:absolute; visibility:hidden;'>";
sw_layers_asword += "<table id='ed_aswordtable' border='0' cellpadding='0' cellspacing='0' class='sw_bd_style_5' onmousemove='clear_timeout()' onmouseout='start_timeout(this)'><tr><td style='padding:3;'>";
sw_layers_asword += "<table width='210' height='170' border='0' cellpadding='2' cellspacing='0'>";
function ed_aswordF()
{
var e_list = new String;
for(var i=0 ; i < 80 ; i++)
{
if(!(i % 10)) e_list += "<tr>";
if (inasw[0][i] == "blank") {
e_list += "<td align='center'><font class='sw_ft_style_1'>X</font></td>";
} else {
e_list += "<td align='center' onClick='javascript:layerClick(ed_asworddiv,\""+ inasw[0][i] +"\");' onMouseOver=this.className='sw_MouseOver_0' onMouseOut=this.className='sw_MouseOut_0' style='cusor:pointer;'><font class='sw_ft_style_0'>" + inasw[0][i] + "</font></td>";
}
if(i % 10 == 9) e_list += "</tr>";
}
return e_list;
}
sw_layers_asword += ed_aswordF();
sw_layers_asword += "</table></td></tr></table></div>";
[bbs/skin/f2plus_gallery_3_0/swe/edit.js]
if(obj.id == "ed_asworddiv")
{
if(typeof document.selection != "Control") {
if(re.exec(uAgent) != null)
{
//IE11
var eEdit = memoiW.window.getSelection().getRangeAt(0);
eEdit.deleteContents();
eEdit.insertNode(eEdit.createContextualFragment(objcmd));
} else if(re2.exec(uAgent) != null) {
//IE8
var eEdit = memoiW.document.selection.createRange();
eEdit.pasteHTML([objcmd]);
} else if(typeof window.getSelection != "undefined") { //Chrome & FF
memoiW.document.execCommand("InsertHTML",false,[objcmd]);
}
} else { //Chrome & FF
memoiW.document.execCommand("InsertHTML",false,[objcmd]);
}
ed_asworddiv.style.visibility = "hidden";
}- [2018/09/03] 묻고답하기 [보안] 이번에 XE4 오픈소스 게시판을 utf-8 버전으로 업그레이드 했는데... *2
- [2018/09/03] 묻고답하기 제로보드 4 스킨 적용 도와주실 분 계신가요 *1
- [2016/03/17] 묻고답하기 XE4에서 자동저장 기능을 구현한 다음 더욱 진보시켜 최초 키스트로크 2회후 한번 저장하고 60초마다 저장되도록 소스를 수정했는데요, 한가지...
- [2015/09/17] Blog XE3 일정과 몇가지 계획에 대해 공유합니다 *9
- [2015/07/13] 묻고답하기 에 맞게 게시판 스킨을 조정하면서 황당한 경험을 하고 있습니다. *2
자바스크립트 에러가 없는지, DTD 선언이 제대로 되어 있는지 먼저 확인해보세요.