2016-02-18 54 views
2

MVC5,CKEditor的自定義文件管理器API如何控制CKEditor API爲filebrowserBrowseUrl打開一個新的新窗口?

我的界面工作良好,但是當我點擊圖片按鈕選擇一個圖像接入,爲文件選擇新窗口顯示了在主顯示器上在我的系統(運行4臺顯示器)。因此,如果我使用顯示器3進行在線編輯,則必須轉到主顯示器以選擇圖像,這有點讓人分心。最好在當前窗口之上打開新窗口。

我不知道如何解決這個問題。我無法爲此找到一個CKEditor配置設置,而且我也不知道如何強制打開視圖或在特定位置打開視圖。

這是我的用於調用CKEditor的安裝腳本:

@Section Scripts 
<script src="~/scripts/ckeditor/ckeditor.js"></script> 
<script> 
    CKEDITOR.replace('Model.UserPost.Body', { 
     filebrowserBrowseUrl: '/BlogsAndForums/UserPost/ImageDisplay?AnchorPostID=' + @Model.AnchorPostID, //This line routes to the ImageDisplay method and view. Needs more configuration 
     toolbarGroups: [ // Define the toolbar groups as it is a more accessible solution. 
      { "name": "basicstyles", "groups": ["basicstyles"] }, 
      { "name": "links", "groups": ["links"] }, 
      { "name": "paragraph", "groups": ["list", "blocks"] }, 
      { "name": "document", "groups": ["mode"] }, 
      { "name": "insert", "groups": ["insert"] }, 
      { "name": "styles", "groups": ["styles"] }, 
      { "name": "about", "groups": ["about"] } 
     ], 
     removeButtons: 'Underline,Strike,Subscript,Superscript,Anchor,Styles,Specialchar' // Remove the redundant buttons from toolbar groups defined above. 
    }); 
</script> 
@Scripts.Render("~/bundles/jqueryval") 
End Section 

的ImageDisplay方法(在filebrowserBrowseUrl看出:規格)(1)顯示圖像從選擇的列表。 (2)點擊圖像後,它(3)關閉並返回到CKEditor。 (4)圖像的URL被填充,一切都很好。

我遇到的唯一問題是ImageDisplay View在我的顯示器上顯示的位置。

回答

2

related question解釋瞭如何打開正確的桌面(顯示器)中的彈出窗口。這完全是關於設置適當的window.open()選項。


現在很難的部分。理論上應該可以使用editor.config.fileBrowserWindowFeatures。現實情況是Popup plugin,它打開彈出窗口(window.open()的包裝)實施得如此糟糕以至於overrides any geometry you set in the config

It doesn't even return a new window handler for the popup

所以基本上沒有什麼可以除了做(這是一個非常,非常討厭的劈):

var org = window.open; 
window.open = function() { 
    var args = Array.prototype.slice.call(arguments, arguments); 
    console.log(args); 
    args[ 2 ] = args[ 2 ].replace(/height=\d+/g, 'height=100'); 
    return org.apply(window, args); 
} 

我創建an issue上CKEditor的bug跟蹤系統。希望它能平滑插件。

+0

我決定此時不打算在窗口打開的位置打開,但我繼續並將其標記爲答案,因爲它確實回答了問題。我決定等待看看CKEditor在提交之前提交的內容,然後再將其標記爲「黑客」。 Thx驗證問題。 – Alan