成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

如何將editor.md的圖片上傳改成七牛?

sourcenode / 2974人閱讀

摘要:之前的編輯器一直用的是但是問題也不少之后覺得換成編輯器首選當然就是主要原因就是界面美觀功能全面但是問題也有比如圖片上傳不知道為什么作者會用那么蛋疼的表單上傳難道只是為了兼容看了上的維護時間最后一次維護差不多半年了想讓作者來改可能性是不大了那

之前的編輯器一直用的是simditor, 但是問題也不少, 之后覺得換成markdown編輯器, 首選當然就是editor.md, 主要原因就是界面美觀, 功能全面...

但是editor.md問題也有, 比如圖片上傳, 不知道為什么作者會用那么蛋疼的表單上傳, 難道只是為了兼容IE8? 看了github上的維護時間, 最后一次維護差不多半年了, 想讓作者來改, 可能性是不大了, 那么就只能自己來了...

editor.md的圖片上傳是以插件的形式存在的, 文件在./plugins/image-dialog/image-dialog.js, 我們就拿這個文件開刀.

另外, editor.md添加圖片后, 不設(shè)置alt, 會自動跳到第二行, 只需要把cm.setCursor(cursor.line, cursor.ch + 2)注釋了即可, 沒有搞明白作者這段代碼的用意是什么...

exports.fn.imageDialog = function () {
    var cm = this.cm
    var lang = this.lang
    var editor = this.editor
    var settings = this.settings
    var cursor = cm.getCursor()
    var selection = cm.getSelection()
    var imageLang = lang.dialog.image
    var classPrefix = this.classPrefix
    var iframeName = classPrefix + "image-iframe"
    var dialogName = classPrefix + pluginName,
        dialog
    cm.focus()
    var loading = function (show) {
        var _loading = dialog.find("." + classPrefix + "dialog-mask")
        _loading[(show) ? "show" : "hide"]()
    }
    if (editor.find("." + dialogName).length < 1) {
        var guid = new Date().getTime()
        var action = settings.imageUploadURL + (settings.imageUploadURL.indexOf("?") >= 0 ? "&" : "?") + "guid=" + guid
        if (settings.crossDomainUpload) {
            action += "&callback=" + settings.uploadCallbackURL + "&dialog_id=editormd-image-dialog-" + guid
        }
        var dialogContent = ((settings.imageUpload) ? "
" : "
") + "" + "" + (function () { return (settings.imageUpload) ? "
" + "" + "" + "
" : "" })() + "
" + "" + "" + "
" + "" + "" + "
" + ((settings.imageUpload) ? "" : "
") dialog = this.createDialog({ title: imageLang.title, width: (settings.imageUpload) ? 465 : 380, height: 254, name: dialogName, content: dialogContent, mask: settings.dialogShowMask, drag: settings.dialogDraggable, lockScreen: settings.dialogLockScreen, maskStyle: { opacity: settings.dialogMaskOpacity, backgroundColor: settings.dialogMaskBgColor }, buttons: { enter: [lang.buttons.enter, function () { var url = this.find("[data-url]").val() var alt = this.find("[data-alt]").val() var link = this.find("[data-link]").val() if (url === "") { alert(imageLang.imageURLEmpty) return false } var altAttr = (alt !== "") ? " "" + alt + """ : "" var arr_url = url.split("$$") var text = "" for (var i = 0, length = arr_url.length; i < length; i++) { if (link === "" || link === "http://") { text = text + "![" + alt + "](" + arr_url[i] + altAttr + ") " } else { text = text + "[![" + alt + "](" + arr_url[i] + altAttr + ")](" + link + altAttr + ") " } } cm.replaceSelection(text) if (alt === "") { // cm.setCursor(cursor.line, cursor.ch + 2) } this.hide().lockScreen(false).hideMask() return false }], cancel: [lang.buttons.cancel, function () { this.hide().lockScreen(false).hideMask() return false }] } }) dialog.attr("id", classPrefix + "image-dialog-" + guid) if (!settings.imageUpload) { return } var Qiniu_upload = function(files, length, i) { if (length > i) { var formdata = new FormData() formdata.append("file", files[i]) formdata.append("key", new Date().getTime() + ".jpg") formdata.append("token", "七牛賬號對應(yīng)的token") $.ajax({ type: "POST", url: "http://up.qiniu.com/", data: formdata, dataType: "json", contentType: false, processData: false }).then(function(json) { var oldurl = $("[data-url]").val() if (oldurl === "") { $("[data-url]").val("七牛圖片服務(wù)器的域名/" + json.key) } else { oldurl = oldurl + "$$七牛圖片服務(wù)器的域名/" + json.key $("[data-url]").val(oldurl) } i++ Qiniu_upload(files, length, i) }, function (err) { console.log(err) }) } else { $("[name="file"]").val("") loading(false) } } var submitHandler = function() { var files = $("[name="file"]")[0].files if (files.length > 0) { Qiniu_upload(files, files.length, 0) } return false } var fileInput = dialog.find("[name="file"]") fileInput.off("change").on("change", function() { var fileName = fileInput.val() var isImage = new RegExp("(.(" + settings.imageFormats.join("|") + "))$") // /(.(webp|jpg|jpeg|gif|bmp|png))$/ if (fileName === "") { alert(imageLang.uploadFileEmpty) return false } if (!isImage.test(fileName)) { alert(imageLang.formatNotAllowed + settings.imageFormats.join(", ")) return false } loading(true) dialog.find("[type="submit"]").off("click").on("click", submitHandler).trigger("click") }) } dialog = editor.find("." + dialogName) dialog.find("[type="text"]").val("") dialog.find("[type="file"]").val("") dialog.find("[data-link]").val("http://") this.dialogShowMask(dialog) this.dialogLockScreen() dialog.show() }

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79687.html

相關(guān)文章

  • Editor.md和markdown實現(xiàn)Sg一樣截圖粘貼上傳

    暫時我還沒有把這個做成一個插件,只是簡單的幾行代碼。其中原理就是通過截圖后,ev.clipboardData 包含了text和圖片文件 數(shù)據(jù) 原文鏈接:http://blog.oeynet.com/post/7... showImg(https://segmentfault.com/img/remote/1460000010776970); 1.Js監(jiān)聽paste事件 seajs.use([edi...

    weij 評論0 收藏0
  • Editor.md和markdown實現(xiàn)Sg一樣截圖粘貼上傳

    暫時我還沒有把這個做成一個插件,只是簡單的幾行代碼。其中原理就是通過截圖后,ev.clipboardData 包含了text和圖片文件 數(shù)據(jù) 原文鏈接:http://blog.oeynet.com/post/7... showImg(https://segmentfault.com/img/remote/1460000010776970); 1.Js監(jiān)聽paste事件 seajs.use([edi...

    jollywing 評論0 收藏0
  • 使用七牛云存儲一些經(jīng)驗總結(jié)

    摘要:原文使用七牛云存儲的一些經(jīng)驗總結(jié)錯誤處理如果在與七牛的交互中出現(xiàn)狀態(tài)碼為的錯誤,一句話,不要猶豫,直接聯(lián)系七牛技術(shù)支持。但是筆者發(fā)現(xiàn),在使用七牛云轉(zhuǎn)化后的視頻,這樣做是無效的。 近段時間將使用七牛云存儲來存放用戶上傳的數(shù)據(jù),客戶端通過七牛的js-sdk與七牛交互,服務(wù)端C#實現(xiàn)了七牛相關(guān)的接口。在這過程中多多少少遇到點問題,在這里總結(jié)一下。原文:使用七牛云存儲的一些經(jīng)驗總結(jié) 599錯...

    Lyux 評論0 收藏0
  • 利用七牛 qshell 和 Automator 打造快捷上傳服務(wù)

    摘要:運行成功之后粘貼板中應(yīng)該會有如下內(nèi)容到這里,只剩下下載安裝就大功告成這里還用到了修改權(quán)限命令,有興趣的話可以查看我另一篇文章服務(wù)器搭建基礎(chǔ)知識。 來源 早前訂閱了一個圖片上傳工具 iPic,單單就圖片上傳這一功能來說它無疑是非常優(yōu)秀的。無奈我有的時候要上傳一些非圖片小文件,雖然這個只是個小功能,一個小小的腳本就可以做到,但是想想用到這個功能的時候還要打開terminal,emmmm…(...

    cyqian 評論0 收藏0
  • Laravel5-Markdown-Editor 在線編輯器

    摘要:是基于封裝的在線編輯器,支持項目。已集成本地七牛云阿里云文件存儲。更新記錄完成在線編輯器主程序,且集成本地七牛阿里云存儲。 Laravel5-Markdown-Editor Laravel5-Markdown-Editor 是基于 editor.md 封裝的 Markdown 在線編輯器,支持 Laravel5 項目。已集成本地、七牛云、阿里云文件存儲。 更新記錄 2017-11-09...

    MoAir 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<