묻고답하기
Edge 브라우저에서 제 게시판 툴바 중에 특수문자랑 미디어 삽입이 동작하지 않는데 해결방법을 모르겠네요.
2016.03.20 19:35
[bbs/skin/f2plus_gallery_3_0/swe/ed_toolbar.php]
41 | < 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]
599 600 601 602 603 604 | 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]
1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 | 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]
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | 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]
956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 | 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 선언이 제대로 되어 있는지 먼저 확인해보세요.