2011-08-13 27 views
4

我正在開發一個網站,使用MarkDown和WMD JavaScript工具,目前迎合已經託管的圖像,但我希望能夠提供WMD中的圖像上傳工具,根據堆棧溢出,但不知道如何去做。'大規模殺傷性武器'網絡降價和如何實施圖像上傳設施

有誰知道這是如何實現的?我的網站正在開發中,使用ASP.NET MVC,並且我很好的服務器端上傳圖像等,但它是如何鉤入JavaScript WMD編輯器(可能是AJAX的元素),我被困住了。

回答

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 –請注意,這需要上傳URL具有與頁面!)與新創建的圖像的地址。

如果你打算以類似的方式來實現這一點,看看at this post on Meta Stack Overflow就可以出現一個討厭的Chrome有錯誤,併爲它的解決方法。

+0

我不認爲你有任何更完整的整個圖像上傳操作代碼示例,即整個過程如何拼湊在一起? – marcusstarnes