나는 MarkDownDeep과 협력하고 있습니다. 그것은 같은 "삽입 이미지"기능을 가지고 있습니다.markdowndeep 이미지 업로드
bootstrap modal을 사용하여 사용자가 자신의 이미지를 업로드하거나 적어도 typeahead이 작동하도록하여이 기능을 확장하여 사용자가 다른 페이지에서 업로드 한 것을 선택할 수있게하고 싶습니다.
아래 프롬프트 대신 콜백 함수를 사용하려고했지만 원래 함수처럼 텍스트 상자에 str
을 삽입하지 않았습니다. 사용자가 업로드 할 수 있도록 순간에 내가 모달 내부의 iframe을 사용하고 있기 때문에
pub.cmd_img = function (ctx) {
ctx.TrimSelection();
if (!ctx.CheckSimpleSelection())
return false;
imagePopUp(function(results) {
$("#" + ctx.m_textarea.id).focus();
var url = results;
if (url === null)
return false;
var alttext = ctx.getSelectedText();
if (alttext.length == 0) {
alttext = "Image Text";
}
var str = "![" + alttext + "](" + url + ")";
ctx.ReplaceSelection(str);
ctx.m_selectionStart += 2;
ctx.m_selectionEnd = ctx.m_selectionStart + alttext.length;
return true;
});
return false;
uploadImageUrl
parent.uploadImageUrl
uploadImageUrl = "baz";
function imagePopUp(callback) {
$('#imageUpload').modal('show');
$('#confirmTrue').click(function() {
$('#imageUpload').modal('hide');
if (callback) callback(uploadImageUrl);
});
}
원래
pub.cmd_img = function (ctx) {
ctx.TrimSelection();
if (!ctx.CheckSimpleSelection())
return false;
var url = prompt("Enter the image URL"); //need to change what this does
if (url === null)
return false;
var alttext = ctx.getSelectedText();
if (alttext.length == 0) {
alttext = "Image Text";
}
var str = "![" + alttext + "](" + url + ")";
ctx.ReplaceSelection(str);
ctx.m_selectionStart += 2;
ctx.m_selectionEnd = ctx.m_selectionStart + alttext.length;
return true;
};
을 설정
당신은 내 none-working fiddle
를 볼 수 있습니다이 트릭해야
간단한 테스트가 작동하는 것 같습니다. 오늘 아침 내 접시에 다른 것들이있어 그래서 나머지 부분을 시험 할 시간이 필요해. – Eonasdan
또한, 당신이 한 일을 설명해 주시겠습니까? – Eonasdan
'InvokeCommand' 함수는 명령 함수가'true'를 반환 할 때 약간의 추가 처리를 수행합니다. 사용자가 파일을 선택하기를 기다리고 있기 때문에 원래 함수가'false'를 반환했습니다. 사용자가 파일을 선택했을 때 추가 처리를 복제하거나,'InvokeCommand'를 다시 호출하여, 선택된 파일을 어떻게 든 통과시킵니다. 가장 간단한 옵션은 편집기에 임시 명령을 추가하고 호출 한 다음 삭제하는 것입니다. –