'WMD'Web Markdown&如何实现图像上传工具

时间:2011-08-13 17:15:04

标签: c# javascript asp.net-mvc wmd

我正在开发一个使用MarkDown和WMD javascript工具的网站,这些工具目前适用于已托管的图像,但我希望能够在WMD中提供图像上传工具,根据Stack Overflow,但不要我不知道怎么回事。

有谁知道如何实施?我的网站正在开发中,使用ASP.NET MVC,我很好的服务器端上传图像等,但它是如何将其挂钩到javascript WMD编辑器(可能是它的AJAX元素)我我坚持了下来。

1 个答案:

答案 0 :(得分:1)

我们最近发布了我们的重构版WMD;你可以在http://code.google.com/p/pagedown/找到它。

关于Stack Overflow的一些非标准用法现在通过插件钩子发生,这包括我们的文件上传器。所以你可以使用相同的钩子来实现它。看看documentation; “挂钩”部分归结为:

editor.hooks.set("insertImageDialog", function (callback) {
    var dia = createMyDialog();
    dia.find(".ok-button").click(function () {
        var url = getChosenImageUrl();
        removeMyDialog();
        callback(url);
    });
    dia.find(".cancel-button").click(function () {
        removeMyDialog();
        callback(null);
    });
    return true; // tell the editor not to show the standard dialog
});

关于实际上传,我们目前使用一个非常难看的解决方案,其工作原理如下:

  • 实际的文件上传表单将target属性设置为隐藏的iframe,因此提交表单不会将您转到其他页面。
  • 在全局对象上定义了一个删除对话框并调用回调的函数。这是丑陋的部分;这个方法不过很干净,但效果很好。
  • 上传控制器操作返回一个最小的HTML文档,其中包含一段调用此函数的JavaScript代码(通过window.parent,因为我们必须打破iframe - 请注意,这需要上传网址才能使用与页面相同的原点!)与新创建的图像的地址。

如果您要以类似的方式实现此功能,请查看at this post on Meta Stack Overflow,了解可能出现的令人讨厌的Chrome错误,以及解决方法。

相关问题