Last active
August 29, 2015 14:16
-
-
Save blrun/09be936b8b9c9122ec73 to your computer and use it in GitHub Desktop.
제로보드4 f2plus_gallery_3_0 WYSIWYG 에디터 모드 전환 관련 수정 소스...
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 제로보드4 f2plus_gallery_3_0 WYSIWYG 에디터 모드 전환 관련 수정 소스... | |
var pattern = /(\[\w+\_code\:\d+\{[^}]*?\}\]|\[\/\w+\_code\])/gi; | |
var pattern = /(\[\w+\_code\:\d+\{[^}]*?\}\]|\[\/\w+\_code\])/gi; | |
var pattern2 = /\[\/\w+\_code\]/gi; | |
var matchArray, e_use_html; | |
var iePattern = /<br[^>]*?><(P|DIV|\/PRE|HR|LI|OL|O:P|UL|TABLE|TBODY|TR|TD|TH|CENTER|H1|H2|H3|H4)([^>]*?)>/gi; | |
var ffPattern = /<br[^>]*?><(TBODY|TR|TD)([^>]*?)>/gi; | |
function htmlspecialchars_encode(str){ | |
str = str.replace(/&/gi,'&amp;'); | |
str = str.replace(/'/gi,'&#039;'); | |
str = str.replace(/"/gi,'&quot;'); | |
str = str.replace(/ /gi,'&nbsp;'); | |
str = str.replace(/</g,'&lt;').replace(/>/g,'&gt;'); | |
str = str.replace(/</g,'<').replace(/>/g,'>'); | |
str = str.replace(/\'/g,'''); | |
str = str.replace(/\"/g,'"'); | |
return str; | |
} | |
function htmlspecialchars_decode(str){ | |
str = str.replace(/"/g,'\"'); | |
str = str.replace(/'/g,'\''); | |
str = str.replace(/</g,'<').replace(/>/g,'>'); | |
str = str.replace(/&lt;/g,'<').replace(/&gt;/g,'>'); | |
str = str.replace(/&nbsp;/gi,' '); | |
str = str.replace(/&quot;/gi,'"'); | |
str = str.replace(/&#039;/gi,'''); | |
str = str.replace(/&/gi,'&'); | |
return str; | |
} | |
function brAddFix(str,use_html) { | |
if(use_html < 2) { | |
if(typeof window.getSelection != "undefined") //FF | |
{ | |
str = str.replace(/\n/gi,"<br />"); | |
str = str.replace(ffPattern,"<$1$2>"); | |
} | |
else if(typeof document.selection != "Control") //IE | |
{ | |
str = str.replace(/\n/gi,"<br />"); | |
str = str.replace(iePattern,"<$1$2>"); | |
} | |
} | |
return str; | |
} | |
function brRemove(str,use_html) { | |
if(use_html < 2) { | |
str = str.replace(/<br \/>|<br>/gi,"\n"); | |
} | |
return str; | |
} | |
function memo2memoi(str){ | |
if(sw_edit_use == "write") | |
e_use_html = parseInt(document.getElementById("use_html").value); | |
else | |
e_use_html = parseInt(document.getElementById("use_html2").value); | |
var memo = "", temp, pt = 0; | |
if(str.match(pattern) == null) { | |
memo = brAddFix(str,e_use_html); | |
} else { | |
while((matchArray = pattern.exec(str)) != null){ | |
temp = str.substring(pt,matchArray.index); | |
if(pattern2.test(matchArray[0]) == true) { | |
temp = htmlspecialchars_encode(temp); | |
temp = brAddFix(temp,e_use_html); | |
} else { | |
temp = brAddFix(temp,e_use_html); | |
} | |
memo += temp + matchArray[0]; | |
pt = matchArray.index + matchArray[0].length; | |
} | |
temp = str.substring(pt) | |
memo += brAddFix(temp,e_use_html); | |
} | |
if(e_use_html < 2) { | |
memo = memo.replace(/ /g,' '); | |
memo = memo.replace(/\t/g,' '); | |
} | |
return memo; | |
} | |
function memoi2memo(str){ | |
if(sw_edit_use == "write") | |
e_use_html = parseInt(document.getElementById("use_html").value); | |
else | |
e_use_html = parseInt(document.getElementById("use_html2").value); | |
var memo = "", temp, pt = 0; | |
if(e_use_html < 2) { | |
str = str.replace(/ /gi,'\t'); | |
str = str.replace(/ /gi,' '); | |
} | |
if(str.match(pattern) == null) { | |
memo = brRemove(str,e_use_html); | |
} else { | |
while((matchArray = pattern.exec(str)) != null){ | |
temp = str.substring(pt,matchArray.index); | |
if(pattern2.test(matchArray[0]) == true) { | |
temp = brRemove(temp,e_use_html); | |
temp = htmlspecialchars_decode(temp); | |
} else { | |
temp = brRemove(temp,e_use_html); | |
} | |
memo += temp + matchArray[0]; | |
pt = matchArray.index + matchArray[0].length; | |
} | |
temp = str.substring(pt) | |
memo += brRemove(temp,e_use_html); | |
} | |
return memo; | |
} | |
function ChangeEditMode(mode) | |
{ | |
if(mode == "html") | |
{ | |
edit_tag_yn = "Y"; | |
var doc = memoiW.document.open("text/html", "replace"); | |
doc.write(default_source + memo2memoi(memoE.value)); | |
doc.close(); | |
memoiE.style.display = "block"; | |
memoE.style.display = "none"; | |
selectionObj.m_selection = null; | |
memoiW.focus(); | |
} | |
else | |
{ | |
edit_tag_yn = "N"; | |
memoE.value = memoi2memo(memoiW.document.body.innerHTML); | |
memoiE.style.display = "none"; | |
memoE.style.display = "block"; | |
memoE.focus(); | |
} | |
if(edit_yn == "Y") | |
{ | |
btnStyc(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment