cheditor5 추가
This commit is contained in:
125
plugin/editor/cheditor5/popup/js/link.js
Normal file
125
plugin/editor/cheditor5/popup/js/link.js
Normal file
@ -0,0 +1,125 @@
|
||||
// ================================================================
|
||||
// CHEditor 5
|
||||
// ================================================================
|
||||
var oEditor = null,
|
||||
button = [
|
||||
{ alt : "", img : 'submit.gif', cmd : returnSelected },
|
||||
{ alt : "", img : 'cancel.gif', cmd : popupClose }
|
||||
];
|
||||
|
||||
function resetValues() {
|
||||
document.getElementById('fm_link_value').value = 'http://';
|
||||
document.getElementById("fm_title").value = '';
|
||||
}
|
||||
|
||||
function popupClose() {
|
||||
oEditor.popupWinCancel();
|
||||
}
|
||||
|
||||
function updateProtocol() {
|
||||
var selectedItem = protocolSel.selectedIndex,
|
||||
selectedItemValue = protocolSel.options[selectedItem].value,
|
||||
inputtedText = document.getElementById("fm_link_value").value,
|
||||
datum,
|
||||
protocol = inputtedText.split(":");
|
||||
|
||||
if (protocol[1]) {
|
||||
datum = protocol[1].replace(/^\/\//, "");
|
||||
datum = datum.replace(/\\/, "");
|
||||
datum = datum.replace(/^\//, "");
|
||||
} else {
|
||||
if (inputtedText.indexOf(":") > 0) {
|
||||
datum = "";
|
||||
} else {
|
||||
datum = protocol[0].replace(/^\/\/\//, "//");
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById("fm_link_value").value = selectedItemValue + datum;
|
||||
document.getElementById("fm_link_value").focus();
|
||||
}
|
||||
|
||||
function returnSelected() {
|
||||
var text, target = '', title = '';
|
||||
|
||||
if (document.getElementById("fm_link_value").value !== "") {
|
||||
text = document.getElementById("fm_link_value").value;
|
||||
} else {
|
||||
alert("링크 URL을 입력하여 주십시오.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (document.getElementById("fm_target").value !== "") {
|
||||
target = document.getElementById("fm_target").value;
|
||||
}
|
||||
|
||||
if (document.getElementById("fm_title").value !== "") {
|
||||
title = document.getElementById("fm_title").value;
|
||||
}
|
||||
|
||||
if ((/^(http|https|file|ftp|mailto|gopher|news|telnet|):\/\//i.test(text)) === false &&
|
||||
(/^(wias|javascript):/i.test(text) === false))
|
||||
{
|
||||
text = "http://" + text;
|
||||
}
|
||||
|
||||
oEditor.hyperLink(text, target, title);
|
||||
oEditor.popupWinClose();
|
||||
}
|
||||
|
||||
function getSelected() {
|
||||
var rng = oEditor.range, link = null, protocol, protocolSel, i, oldTarget, targetSel, j;
|
||||
|
||||
if (window.getSelection) {
|
||||
link = oEditor.getElement(rng.startContainer, "A");
|
||||
} else {
|
||||
link = rng.parentElement ? oEditor.getElement(rng.parentElement(), "A") : oEditor.getElement(rng.item(0), "A");
|
||||
}
|
||||
|
||||
if (link === null || link.nodeName.toLowerCase() !== 'a') {
|
||||
return;
|
||||
}
|
||||
|
||||
protocol = link.href.split(":");
|
||||
|
||||
if (protocol[0]) {
|
||||
protocolSel = document.getElementById("fm_protocol");
|
||||
for (i = 0; i < protocolSel.length; i++) {
|
||||
if (protocolSel[i].value.indexOf(protocol[0].toLowerCase()) !== -1) {
|
||||
oldTarget = link.target;
|
||||
targetSel = document.getElementById("fm_target");
|
||||
|
||||
if (oldTarget) {
|
||||
for (j = 0; j < targetSel.length; j++) {
|
||||
if (targetSel[j].value === oldTarget.toLowerCase()) {
|
||||
targetSel[j].selected = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
targetSel[0].selected = true;
|
||||
}
|
||||
|
||||
protocolSel[i].selected = true;
|
||||
|
||||
if (link.title) {
|
||||
document.getElementById("fm_title").value = link.title;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
document.getElementById("fm_link_value").value = link.href;
|
||||
}
|
||||
|
||||
function init(dialog) {
|
||||
oEditor = this;
|
||||
oEditor.dialog = dialog;
|
||||
|
||||
resetValues();
|
||||
getSelected();
|
||||
|
||||
var dlg = new Dialog(oEditor);
|
||||
dlg.showButton(button);
|
||||
dlg.setDialogHeight();
|
||||
}
|
||||
Reference in New Issue
Block a user